java中的super和继承

java中的super

父类代码如下:

package oop.Demo05;
//Person = 人
public class Person{

   public Person() {//父类构造器,会在子类构造器中优先执行
       System.out.println("Person无参构造执行了");
  }

   protected String name = "zhazhawei";
   private int money = 1_0000_0000;
   public void say(){
   System.out.println("说了一句话");
}

   public int getMoney() {
       return money;
  }

   public void setMoney(int money) {
       this.money = money;
  }
}

 

子类代码如下

 

package oop.Demo05;
//Student is 人 是父类Person的派生类、子类
//子类继承父类就会有父类的全部方法
//java中,所有的类都默认直接或者间接继承object这个类(祖宗类)
//子类调用父类的方法和属性字段等,使用super.来调用
//在构造器中,super必须放在代码的第一行。
//父类构造器为有参构造器,则子类调用时也必须是有参
public class Student extends Person{

   public Student(){
       super();//Person无参构造执行了,在子类构造器中,不论是否有super,都会先去执行父类的构造器
       System.out.println("Student无参构造执行了");
  }
   private String name="zxw";

   public void test(String name){
       System.out.println(name);
       System.out.println(this.name);
       System.out.println(super.name);
  }
}

 

 

//Student is 人 是父类Person的派生类、子类

//子类继承父类就会有父类的全部方法

//java中,所有的类都默认直接或者间接继承object这个类(祖宗类)

//子类调用父类的方法和属性字段等,可以使用super.来调用

//在构造器中,super必须放在代码的第一行。

//父类构造器为有参构造器,则子类调用时也必须是有参

//super只能出现在子类的方法或者构造器方法中

//super和this不能同时调用构造方法

对比this:

代表的对象不同:

this:代表本身调用者这个对象(在这个文件的代码中就是代表这个文件的对象)

super:代表父类对象的应用

前提:

this:在没有继承也可以使用

super:只能在继承条件下才可以使用

构造方法:

this();本类的构造

super();父类的构造

在类使用final后就不能继承了

posted @ 2022-10-16 21:28  zhazhawei906  阅读(64)  评论(0)    收藏  举报