Super关键字

Super关键字

父类:

package com.tiedandan.oop.super引用父类方法和属性;

public class Father {
   public Father(){
       System.out.println("父亲构造方法真正先执行!");
  }
   public String getName() {
       return name;
  }

   public void setName(String name) {
       this.name = name;
  }

   private String name="爸爸";

 public void print(){
     System.out.println("father is father");
}
}

子类:

package com.tiedandan.oop.super引用父类方法和属性;

public class Person extends Father {
   public Person(){
       //当子类继承父类时,测试方法new一个子类对象,这会先激活父类的构造方法,再激活子类的构造方法
       //而且子类构造方法中隐藏了一句super();调用父类的构造方法,括号内可以给构造方法传参。
    //super();必须放在构造方法内第一行,用于调用父类构造方法
       //若自己写出super();则此句必放第一行,不然报错。
       //父类必须要有无参构造,不然子类super无法引用父类的无参构造而报错。
       //所以在写有参构造的时候,隐藏的无参构造会失效,一定要把无参构造重写一遍。
       System.out.println("儿子构造方法先执行");
  }
   public String getName() {
       return name;
  }

   public void setName(String name) {
       this.name = name;
  }

   private String name="儿子";
   public void test1(){
       this.name=name;
       //super用于子类获得父类里公开的的属性和方法,但无法获得私有的。
       //可以把鼠标光标移到name上,相同属性都有方块。

       System.out.println(name);//name指的是person类里的name
       System.out.println(this.name);//name指的是person类里的name
       System.out.println(super.getName());//这里用super获得father里的name
       super.print();//super调用父类方法。
  }
}

测试类:

package com.tiedandan.oop.super引用父类方法和属性;

public class application {
   public static void main(String[] args) {
   Person person = new Person();
   person.test1();
}
}

 

posted on 2021-11-12 17:50  张铁蛋666  阅读(29)  评论(0编辑  收藏  举报

导航