持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,[点击查看活动详情]
多态
多态:多种状态,指一个对象可以有多种状态(在继承体系中的位置变化).位置的变化只能向上变,不能低于自身(强制向下转:(方法名 名称=(方法名)变量))。对象本身不变。
ClassCastException:类型转换异常
判断对象的本质类型:instanceof
多态的表现:父类引用指向子类的对象
多态的前提:继承,重写
多态的好处:对代码的功能进行了可扩展性,对子类对象可以当做父类对象去使用,但只能调用父类函数或重写的函数,不能使用子类特有的行为。
class DT{
public static void main(String[] args){
Dady s=new Son();//父类引用指向子类的对象
s.drink();//4
s.game();//报错
}
}
class Dady{
void drink(){System.out.println("1")}
void eat(){System.out.println("2")}
void run(){System.out.println("3")}
}
class Son extend Days{
void drink(){System.out.println("4")}
void eat(){System.out.println("5")}
void run(){System.out.println("6")}
void game(){System.out.println("7")}
}
多态中成员变量的特点:只能访问父类中的成员变量。
多态中成员函数的特点:
如果子类没有重写,且父类中有调用父类的.
如果子类有重写,调用子类重写的。
如果不存在重写,父类没有,报错。
chiji代码的补充在18下。1小时左右。
抽象类
抽象类:模糊不清的类,不具体的类。abstract.没有方法体的函数,只保留了函数的声明。有抽象函数的类就叫抽象类。
当我们在抽取一个父类的时候,发现子类中的一些共同方法在父类中无法进行具体实现,只能这些方法在子类中具体实现时,父类当中的这些函数就只保留函数声明即可,不用写函数体,这个函数就是抽象函数。
特点
1,抽象类不能创建对象,对象本身是一个具体的东西,而抽象类中含有不具体的内容。
2,抽象类必须作为父类存在。抽象类是要被继承。
3,抽象类就是一般类的特殊情况,抽象类相比一般类在于,抽象类中有抽象函数。
4,抽象类中不一定有抽象函数。在AWT界面开发
5,abstract不能和private(不能被重写),static(静态优先于对象存在,在加载静态数据时是具体的数据。如果抽象函数可以被静态,就不需要对象了)关键字共存