继承
- 只有单继承,除了构造器全部继承。子类是特殊的父类。
person ps = new men(); //此时构造器可以直接把子类转成父类;
- 子类可以直接赋值给父类,父类要通过强转成子类,运用instanceof进行检测。
men mn = (men) new person(); //父类需要强转成子类;
多态
- 多态出现在编译时类型和运行时类型不同的时候。
person ps = new men();
- 成员变量无多态。成员方法执行运行时类型。
ps.name //此时执行的是父类的name;
ps.study(); //此时调用重写父类的子类方法;
this
- 默认this调用成员变量和成员方法,隐含this。
此时的this代表了当前类。
String na = name; //相当于 String na = this.name;
fly(); //相当于this.fly();
- 用于区分同名的局部变量和成员变量。
name = naem; //相当于this.name = name;
static
-
用于定义静态变量和静态函数。又称类变量、方法。
通过类名调用static定义的变量、方法。 -
在类(静态)方法中不可调用非静态(实例)变量、方法。
但是实例(非静态)方法中可以调用static的变量、方法。 -
他们各自的生命周期也和类、实例的生命周期相同。
通过类调用类方法,通过实例调用实例方法。
super
- 用于在子类中调用父类的成员变量和成员方法。
前提是父类中定义的变量,方法的权限是protect以上。
public void testfly() {
System.out.println("在这里可以调用父类");
super.fly(); //通过super调用被覆写的函数;
System.out.println("子类在这里可以调用" + super.name);
//通过super调用父类的对象。
}