多态:一个类在不同时刻表现出的具体对象
前提:有继承关系,有方法重写,父类引用指向子类对象
父类引用指向子类对象:相当于指定了类在当下情况下的具体对象
例如:一个父类A有三个子类B,C,D;
而 A 对象名 = new B() ;这一句则是明确告诉编译器,现在这个类的具体对象是B,根据B的实际变量和方法,来进行相应操作
成员访问特点:
成员变量:编译看左边,运行看左边。
构造方法:创建子类对象时间,访问父亲构造方法,对父亲数据进行初始化
成员方法:编译看左边,运行看右边
静态方法:编译看左边,运行看左边
抽象类:假如对于多态而言,他的父类是在多个子类的属性和行为的总结,但是这个父类具体如何呢?好像并不能想象,此时,这种类被称为抽象类,用关键词abstract来声明,抽象类是不可以被初始化的。
抽象类除了被继承外,没有用途,没有值,没有目的
抽象的类必须要被继承,抽象的方法必须要被覆盖
在抽象的类中,方法也是抽象的。抽象的方法程序代码没有意义,因此直接分号结束。但是他为以后继承的子类定义出了方法共同的协议,标记处多态。
抽象类可以带有抽象和非抽象的方法
一个类加入带有抽象的方法,那么这个类一定是抽象类