1.继承
继承提高代码复用性,
只支持单继承, 一个类只能有一个父亲,一个父亲可以有多个子类
语法 : public class 类名
extends 父类名{ 类体 }
ava.lang.Object 是java中的祖类(祖宗)
2.super.
super 用法 :
1 用于成员/构造方法中区分子类和父类同名的成员属性
2 用于子类构造方法中,调用父类构造方法(必须出现在子类构造方法的第一行)
super.表示调用父类的某些方法(用来区分子类和父类重名的一些方法)
super();用于调用父类的构造方法 , 在子类的构造方法里,默认第一句为super();
this和super 都不能在静态方法中使用
this() 和 super() 都必须出现在构造方法第一行,那么就意味着 它俩不能同时出现
super() : 用来调用父类构造,初始化父类属性,并且创建对象(最终肯定会调用到Object,通过Object创建对象)
3.执行顺序
-
实例语句块 : 可以等同看做成员方法,肯定需要使用对象调用的
-
但是由于没有名字,不能手动调用,只能自动调用
-
所以 只要创建完对象 就立刻执行
-
所以 实例语句块是在创建对象后执行,并且执行构造方法体之前
4.覆写
重写的条件
1必须是有继承关系的体系中
2方法名必须相同,返回值必须相同,参数列表必须相同
3不能比原方法有更宽泛的异常
4不能比原方法有更低的访问权限
5覆写特指成员方法
5.final
被final修饰的类不能被继承
-
final修饰的变量,内存空间中的值不可更改
-
如果修饰的是引用类型变量,也是一样的道理,但是和引用类型的地址指向的堆内存空间,没有关系
上图中修改了对象的地址, 但是被final修饰的对象不能被修改, 所以报错了!