Java学习笔记之继承
1.使用关键字extends;
2.java 是单继承,即只能继承一个直接父类;
3.不能继承private,final修饰的成员变量、方法,以及构造方法;对于父类的包访问权限成员变量和方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
4.若子类不直接使用super调用父类构造方法,系统会自动调用super()调用父类的无参构造方法,
此时,若父类定义了有参构造方法而没有定义无参构造方法则编译不通过。
5. 子类可以通过super调用父类的方法和属性,以方法签名区分方法,即方法名和参数列表,且必须放在该方法的第一条语句(可以是:System.out.print(super.方法名);的形式使用):
5.1 super(参数列表);//这样会调用父类的构造方法,只能在构造方法中使用,因为构造方法只能在new一对象的同时直接调用,而不能显示地调用。
5.2 super.成员变量 或 super.方法;//调用父类的属性和方法。
6. 子类重写父类方法时,必须返回类型相同;若子类具有与父类同名方法,但参数列表不同,则不是重写而是重载,属于不同的方法。
7.子类方法不能抛出比父类更多的异常。子类方法抛出的异常不许和父类方法抛出的异常相同,或者子类方法抛出的异常是子类方法抛出的异常类的子类。例如:Base base=new Sub();编译的时候只是看到了Base类型,所以不能捕获Base类声明之外的类型,否则编译出错,但是如果不捕获这些异常,将导致程序异常终止。
8.子类可以定义与父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法。在编译时,子类定义的静态方法也必须满足与方法覆盖类似的约束:方法的参数签名一致,返回类型一致,不能缩小父类方法的访问权限,不能抛出更多的异常。
9.父类的非静态方法不能被子类覆盖为静态方法;父类的静态方法不能被子类覆盖为非静态方法。
10.父类的非抽象方法可以被覆盖为抽象方法。这样是:普通类的子类是抽象类,并且,非抽象方法被抽象方法覆盖。
以上是 Java学习笔记之继承 的全部内容, 来源链接: utcz.com/z/389770.html