TestExtends

1.继承的作用及格式

继承:子类继承父类--->代码的复用性

  • 主要作用:子类可以通过继承父类获取父类中的属性和方法

  • 格式:public class Son extends Father

    extends---->关键字,用于继承

  • 单一继承性(一个子类只能有一个父类)

  • 子类可以有自己的都有方法,功能扩展性

  • 继承也存在多重继承的关系(一个子类可以有父类,爷爷类,祖类........)

//父类:
class Father {
        String name;
        int age;
        public void show(){
            System.out.println("show father");
    }
}
​
//子类:
class Son extends Father {
    public Son(){
        System.out.println("Son的无参构造方法");
    }
}

 

2.继承的构造函数

  • 当存在继承关系是,执行子类的构造方法,要先去执行父类的无参构造方法,在执行子类的构造方法

  • 当存在继承关系是,父类必须得有无参的构造方法,不然会报错

//父类:
class Father {
        String name;
        int age;
        public Father(){
            System.out.println("Father的无参构造方法");
        }
        public void show(){
            System.out.println("show father");
    }
}
​
//子类:
class Son extends Father {
    public Son(){
        //super();
        System.out.println("Son的无参构造方法");
    }
}
​
//TestExtends类:
public class TestExtends {
    public static void main(String[] args) {
        Son son = new Son();//子类的引用指向子类对象
        //输出了:
        /*
        Father的无参构造方法
        Son的无参构造方法
         */
    }
}

 

  • super--->父类对象 this--->当前对象

    super()--->父类的构造方法 this()--->当前对象的构造方法

  • 执行子类构造方法时,要先去调用父类的无参构造方法,可以理解为:编译器给每个子类的构造方法都加了super()执行父类的无参构造方法,当我们显式的为子类构造方法提供super(),编译器就不会默认提供super().

  • super()方法必须放在后遭方法的第一行

3.父类的引用指向子类对象

//TestExtends类:
public class TestExtends {
    public static void main(String[] args) {
       Son son = new Son();
       //子类的引用指向子类对象
      
       Father father1 = new Father();
       //父类的引用指向父类对象
      
       Father father2 = new Son();
       //父类的引用指向子类对象
     }
}
  • 父类的引用可以指向子类的对象,也叫做子类对象向上造型为父类类型。

  • 当父类的引用指向子类对象时,父类的引用只能访问父类的属性和方法。 

posted @ 2022-03-28 21:21  涐啝雨の約定  阅读(31)  评论(0)    收藏  举报