一、继承简介
子类在拥有自己的内容的同时,还可以使用父类中的内容
二、继承的好处与弊端
三、继承中变量的访问特点
先去自己的局部变量里找,也就是在方法中定义的变量,找不到的话,再去成员变量找,最后从父类中找
四、super关键字
作用类似于this关键字
五、继承中构造方法的访问特点
1.
就是在调用子类构造方法时,无论调用的是子类的有参还是无参,都会首先默认调用父类的无参构造方法
2.当父类中没有无参构造方法时的解决办法
两种办法
第一、
(用super向父类传入参数,从而调用有参构造方法)
第二、
(在父类中手写一个无参构造方法)
六、继承中成员方法的访问特点
如果子类函数里利用super调用父类函数,那么,会先输出父类再输出子类,如下图
七、方法重写
可以将父类中的方法声明(也就是定义方法的那一行复制到子类中),并在子类重写的方法中使用super关键字去调用父类中的方法,如下
关于方法重写有一个注解,可以检查是否重写有无
如下
八、方法重写的注意事项
(ps 默认 就是指定义方法时,不用修饰符例如public修饰,而是直接static 方法名(参数){})
其中的私有方法不能被重写,如下
九、继承的注意事项
十、继承变量补充
图中的this.name 是指父类中的成员变量,所以受到启发,可以在子类中调用父类的成员变量,但是前提是 父类成员变量不能用private修饰,private修饰的成员变量不能在子类中被继承使用
注意
super.(成员变量) 访问父类,从父类里面往外拿
this.(成员变量)向父类中传入参数,往父类里面送
解决办法:
可以在子类中调用父类的有参构造器,从而将参数传入父类,如下图