继承

一、继承的关键字:extends
Java是单继承。一个只能有一个直接父类。

写法:class 类名 extends 父类名{}

二、访问修饰符:

private ,public,默认,protected( 能被同一个包及其它包中的派生类继承;)

private 的成员无法被继承

public,protected 永远被继承。

默认 只有在当前包中可以被继承。

三、继承的实例化次序:

当我们实例化一个子类的时候。先实例化父类,再实例化子类。

父类的成员定义--父类的构造函数--子类的成员定义-- 子类的构造函数

四、带有构造函数的继承

如果父类中带有无参构造函数。子类构造函数,按照正写法即可。

如果父类中没有无参构造函数,只有有参构造。在子类构造函数的第一行,必须用super()给父类构造传递参数,调用父类构造。

public class Dongwu {
    protected String name;  
public Dongwu(String name){ //父类构造函数有参数的 this.name=name; }
public void jiao(){ System.out.println("动物的叫声"); } }
public class Niao extends Dongwu {
    public Niao(String name){    
        super(name);            //子类必须用super()给父类构造传递参数,调用父类结构。写在第一行。
    }

    public void jiao(){   
        System.out.println(this.name+":喳喳喳"); 
    }
public class home {
    public static void main(String[] arges){
        Niao a= new Niao("喜鹊");  //实参
        a.jiao();
    }

五、方法的重写

子类可以对父类的成员进行扩展,还可以进行重写。

子类的方法与父类的方法重名了,默认情况下子类的方法重写覆盖父类的方法。如果要显式调用父类的成员,需要使用super.XXXX()来调用父类的成员。

super 一般两种用法

super()用来调用父类的构造。另一种super.xxx()是用来用调父类被覆盖的方法。

原文地址:https://www.cnblogs.com/hq233/p/6225445.html