继承最基本的作用就是:代码复用,避免写一些重复的代码。除此之外,继承也是之后函数覆盖、多态的基础。
注意:
Java只支持单继承,即:一个类只能继承一个类。
但支持嵌套继承。a类继承A类,则A类称为父类、superclass;a类称为子类、subclass构造函数不支持继承,其余内容都支持继承。其中,private内容不支持直接访问,但子类中仍含有这些内容,可以通过实例函数间接访问。若一个类没有被程序员指定继承某个类,则该类默认继承JavaSE库中提供的java.lang.Object类所有类中都默认存在Object类的信息
语法:子类 extends 父类
class A { private int n; void setN (int n) { this.n = n; } int getN () { return n; } } class test extends A { public static void main(String[] args) { test t = new test(); t.setN(100); System.out.println(t.getN()); } }函数覆盖(重写)
方法重写(override)发生在具有继承关系的两个类之间。
当父类中的函数已经无法满足子类的具体需求的时候,需要对从父类中继承的函数进行修改(重写)。
重写的函数名、返回值类型、形参列表都一致;子类中该函数的访问权限不低于父类中该函数的访问权限(private < protected < public);子类的抛出异常没有更多。
如此,子类调用函数时,会优先调用子类中的函数。
class Animal { void move() { System.out.println("动物在移动"); } } class Cat extends Animal { void move() { //与父类中的函数名、返回值类型、形参列表都一致 System.out.println("小猫在走猫步"); } public static void main(String[] args) { Cat t = new Cat(); t.move(); //小猫在走猫步 } }
注意:private函数、构造函数不能继承,因此不能重写;静态函数也不存在重写。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)