继承性
-
子类(也称为派生类)继承父类(也称为基类),子类就获取到了父类中声明的所有属性和方法(构造方法不能继承,只能在子类构造方法第一行调用父类的构造方法)。但是由于封装性的影响,可能子类不能直接调用父类中的属性和方法(如父类中声明为private)。继承提高了代码的复用性
-
子类继承父类后,可以扩展自己的属性和方法。继承的出现更有利于功能的扩展
-
子类继承父类后,还可以重写方法,也叫方法的覆盖,覆盖是指派生类中存在重新定义的函数,其与父类中的某个函数(函数名、参数列表、返回值类型)都相同,那么当派生类对象调用该函数时,会自动调用子类中的覆盖版本。不过要注意:实现方法覆盖时,子类方法不能比父类的方法权限小,子类方法抛出的异常不能比父类多。注意方法覆盖与方法重载的不同
super 关键字
结论:
-
Java构造器不是函数,所以不能被继承,只能在子类构造方法第一行通过使用super来调用父类的构造方法。
-
如果父类中有显式无参构造函数或者默认无参构造函数时,子类中的构造函数的方法体中会默认调用父类无参构造函数。当然,以上情况下我们也可以自行在子类构造函数中通过super()来显式调用父类无参构造函数或通过super(参数)来显式调用父类有参构造函数。但是,当父类中仅有有参构造函数时,那么子类构造函数中必须由我们手动通过super(参数)来显式调用,否则运行时会报错。
以下由两段代码用于解释:
标签:java,子类,System,面向对象,println,继承性,父类,public,构造函数 From: https://www.cnblogs.com/yang-xiaojie/p/18064707