1,多态中成员变量的访问特点:
编译看左边,运行看左边
2多态中成员方法的访问特点:
编译看左边,运行看右边
3,多态中静态方法的访问特点:
编译看左边(父类),运行看左边(父类)。
(静态和类相关,算不上重写,所以,访问还是左边的)
只有非静态的成员方法,编译看左边,运行看右边
4,instanceof:判断前面的引用是否是后面的数据类型
5,抽象类:
特点:
A,抽象类和抽象方法必须用abstract关键字修饰
* abstract class 类名 {}
* public abstract void eat();//当不知道该方法具体是怎么实现的
B,:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口
C,抽象类不能实例化
D,抽象类的子类:要么是抽象类,要么重写抽象类中的所有抽象方法
抽象类的成员特点:
a:成员变量:既可以是变量,也可以是常量。abstract是否可以修饰成员变量?不能修饰成员变量
b:构造方法:有。
用于子类访问父类数据的初始化。
c:成员方法:既可以是抽象的,也可以是非抽象的。
抽象类的成员方法特性:
a:抽象方法 强制要求子类做的事情。
b:非抽象方法 子类继承的事情,提高代码复用性。
6,abstract不能和哪些关键字共存:
abstract和static
被abstract修饰的方法没有方法体
被static修饰的可以用类名.调用,但是类名.调用抽象方法是没有意义的
abstract和final
被abstract修饰的方法强制子类重写
被final修饰的不让子类重写,所以他俩是矛盾
abstract和private
被abstract修饰的是为了让子类看到并强制重写
被private修饰不让子类访问,所以他俩是矛盾的
7,接口中定义的变量都是常量
接口中成员变量默认public static fina
接口中没有构造方法
接口中不能定义非抽象方法
成员方法默认:public abstract修饰
一个类不写继承默认继承object类
|
|