2.1子类对象的创建过程
实例化子类对象的过程
调用子类的构造方法中,先调用了父类的构造方法,默认调用的父类的无参构造方法。
1、子类的构造方法中,第一行一定是调用了父类的构造方法。
2、如果没有显示的调用父类的构造方法,那么编译器会自动添加一个:super(),父类的无参构造方法。
3、子类的构造方法中,既可以调用父类的无参构造方法,也可以调用父类的有参构造方法。
4、父类的构造方法:
无参构造:super();
有参构造:super(参数);
2.3方法的重写
重载:一个功能方法的多种写法
同一个类中,方法名必须一致,参数列表必须不同
重写:继承结构
在继承机构在,子类将父类已有的方法重新实现,这就叫方法的重写
如果在子类中,存在方法的重写,那么默认调用的是重写之后的方法
方法重写的规则
1、继承结构中
2、方法的声明:必须和父类一致
方法名必须和父类一直
参数列表必须和父类一致
返回值必须和父类一致
3、访问权限,不能比父类更加严格
4、子类重写的方法,不能抛出比父类更大的异常
2.4访问权限修饰符
访问权限:就是在那能访问,通过访问权限修饰符来实现
private:私有的,本类的
默认的(default):注意:啥修饰符都不写,就是默认的,本类,同包下可以访问
protected:受保护的,本类可以。同包下可以,不同包的子类可以
public:没有限制,都可以使用
使用原则:
修饰类:只能是public default
修饰成员:变量和方法:以上4个修饰符都可以
局部变量:不能使用这些修饰符
2.5对象的多态性
2.5.1什么是多态
其实就是事物的多种形态
类的实例:new出来的-->对象
2.6向上转型和向下转型
向上转型:一个子类对象看成了父类类型,那么就失去了子类新增
Animal a2 = new Cat();//
a2,本身是子类对象,但是看成父类类型。
那么能够访问父类的属性,不能访问子类的新增属性。
能够访问方法,以及子类重写的方法。
三、总结
1、子类对象的创建过程:(知道)
1、子类的构造方法的第一行,一定是调用了父类的构造方法。如果没有,那么编译器自动添加:super();
2、先调用父类的构造,然后再执行子类的构造。
2、super关键字:(记住)
用法一:指代父类的构造方法。super()。位于第一行。
用法二:直接访问父类的属性和方法。
3、方法的重写:(会用)
概念:继承关系中,子类将父类已有的方法重新实现。
英文:override
规则:
4、访问权限:访问权限修饰符,用于控制可见度。(知道)
private:本类
default:本类,同包
protected:本类,同包,不同包(限于继承结构)
public:没有限制
5、对象的多态性:(未完待续。。)
向上转型:将子类的对象,看成父类的类型。就"失去"了子类的新增。
网友评论