码迷,mamicode.com
首页 > 其他好文 > 详细

super关键字

时间:2020-07-16 00:24:25      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:ram   first   参数   设计   load   xtend   类的方法   运行   构造   

关键字super指代父类。

用途:1)调用父类的构造方法

           2)调用父类的方法

语法:super()、super(parameters)

构造方法用于构造一个类的实例。子类继承父类时,父类的构造法方法不会被子类继承。所以需要用到父类的构造方法或方法时,super就派上用场啦。

super()、super(paraments)必须出现在子类构造方法的第一行,是显示调用父类构造方法的唯一方式

构造方法链

构造方法可以调用重载的构造方法或父类的构造方法。

如果都没有被显示地调用,编译器会自动地将super()作为构造方法的第一条语句。

  

public class Faculty extends Employee {

    public static void main(String[] args) {
        new Faculty();

    }
    public Faculty() {
        System.out.println("fourth");
    }
}

public class Employee extends Person{
    public Employee() {
        this("second");
        System.out.println("third");
    }
    public Employee(String s) {
        System.out.println(s);
    }
}

public class Person {
    public Person() {
        System.out.println("first");
    }
}

运行结果:

技术图片

 

 

在调用Faculty的无参构造方法前,因为Faculty是Employee的子类,所以先调用父类无参构造方法,由于Person是Employee的父类,所以先调用父类的的无参构造方法。

在设计一个可以被继承的类时,最好为每一个类提供一个无参构造方法,以便于对该类进行扩展,同时避免错误。

调用父类的方法

super.方法名(参数);

如果仅仅是调用父类的方法,是不需要使用super的,子类直接继承父类的方法,可以直接调用。

在方法重写中就需要用到关键字super!

方法重写

什么是方法重写:子类修改父类的方法。

 1 public class Faculty extends Employee {
 2     public static void main(String[] args) {
 3         Faculty user=new Faculty();
 4         System.out.println(user.Change());
 5 
 6     }
 7     public Faculty() {
 8         System.out.println("fourth");
 9     }
10     public String Change() {
11         //重写了父类的方法12         return super.Change()+"\nThis is Employee";
13     }
14 }
15 
16 public class Employee extends Person{
17     public Employee() {
18         this("second");
19         System.out.println("third");
20     }
21     public Employee(String s) {
22         System.out.println(s);
23     }
24     public String Change() {
25         return "This is Person";
26     }
27 }
28 
29 public class Person {
30     public Person() {
31         System.out.println("first");
32     }
33 }

运行结果:

技术图片

 

super关键字

标签:ram   first   参数   设计   load   xtend   类的方法   运行   构造   

原文地址:https://www.cnblogs.com/codercql/p/13308383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!