继承
关键字:extends
1.提高代码复用性
2.让类与类之间产生关系。有了这个关系,才有了多态的特性。
注意:千万不要为了获取其他类的功能,简化代码而用继承
必须是类与类之间有所属关系才可以继承。(所属关系)
继承注意事项 1.变量:如果子类中出现非私有的同名成员变量时
子类要访问本类的变量,用this
子类要访问父类中的同名变量,用super
super的使用和this的使用几乎一致
this代表的是本类对象的引用
super代表的是父类对象的引用
2.子父类中的函数 当子类出现和父类一模一样的函数时
当子类对象调用该函数,会运行子类函数的内容
如同父类的函数被覆盖一样
这种情况是函数的另一种特性:重写(覆盖)
当子类继承父类,沿袭了父类的功能,到子类中
但是子类虽具备该功能,但是功能的内容却和父类不一致
这时,没有必要定义新功能,而是使用覆盖特殊,保留父类的功能定义,并重写功能。
覆盖:
1.子类覆盖父类,必须保证子类权限大于等于父类的权限,才可以覆盖,否则编译失败
2.静态只能覆盖静态
重载:只看同名函数的参数列表
重写:子父类方法要一模一样
3.子父类中的构造函数
在对子类对象进行初始化时,父类的构造函数也会运行。
那是因为子类的构造函数默认第一行有一条隐式的语句 super();
super();会访问父类中空参数的构造函数。而且子类中所有的构造函数数量默认第一行都是super();
注意:super语句一定定义在子类构造函数内的第一行。
final:最终 一个修饰符
1.可以修饰类 函数 变量
2.被final修饰的类不可以被继承,为了避免被继承,被子类复写的功能。
3.被final修饰的方法不可以被复写。
4.被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,有可以修饰局部变量。
5.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
学习感悟:学习完之后,以后再也不为了节省代码而乱用继承了