什么是多态性
Person p = new Man(); 对象的多态性,父类的引用指向子类的对象
p.eat();
调用方法时,编译看左边,运行时看右边
一个类只有一个直接父类,一个父类可以有多个子类,子类能获取到直接父类的父类中的结构(间接父类)
子类能够获取父类中private权限的属性或者方法,根据public get 或是set方法
方法的重写规则?
权限修饰符,子类的权限修饰符不小于父类
形参列表相同
返回值
抛出的异常
super调用构造器,注意的点
this(形参列表):本类重载的其他的构造器
super(形参列表):调用父类中指定的构造器
重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作。
重写以后:创建子类对象以后,通过子类对象调用父类中的同名参数的方法时,实际执行的是子类重写父类的方法
重载:可以在一个类中,可以声明多个方法名相同,形参列表不同的方法,他们彼此之间就构成了重载,构造器也可以重载
重载和重写的规则
重载:不表现为多态性
重写:表现为多态性
1.super 关键字可以理解为:父类的
2.可以用来调用的结构:属性,方法,构造器
super调用构造器
因为两个都需要出现在首行
无论哪个构造器创建子类对象,需要保证先初始化父类
目的:当子类继承父类后,“继承”父类中所有的属性和方法,因此子类有必要知道父类如何为对象进行初始化
强调说明:
虽然创建子类对象时,调用了父类的构造器,但是自始自终就创建过一个对象,即为new的子类对象