覆盖 (重写)

来源:互联网 发布:js文件中引入js文件 编辑:程序博客网 时间:2024/05/18 11:16

覆盖 (重写)

  1. 子类覆盖父类,必须保证子类权限大于等于父类权限才可以覆盖,否则编译失败。
  2. 静态只能覆盖静态。

重载:只看同名函数的参数列表

重写:子父类方法要一模一样

子父类的构造函数

在对子类的构造函数进行初始化时,父类的构造函数也会运行,
因为子类的构造函数默认第一行有一条隐式的语句 super();
super();会访问父类中空参数的构造函数。而且子类中所有的构造函数默认第一行都是super();

为什么子类一定要访问父类中的构造函数

因为父类父类中的数据子类可以直接获取,所有子类中的对象在建立时,需查看父类是如何对这些
数据进行初始化的。
所以子类在对象初始化时,要先访问父类中的构造函数

如果要访问父类中指定的构造函数 可以通过手动定义super的方式来访问

结论: 子类中所有的构造函数,默认都会访问父类中空参数的构造函数
因为子类每一个构造函数内的第一行都有一句隐式super();

当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。
子类的构造函数第一行也可以指定this语句来访问本类做的构造函数。子类中至少有一个构造函数访问父类中是构造函数。

object 为所有类的父类