码迷,mamicode.com
首页 > 编程语言 > 详细

Java之super关键字

时间:2020-01-08 23:21:28      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:操作   成员方法   person   div   空间   super关键字   直接   sys   date   

super关键字概述:

1.在Java类中使用super来调用父类中的指定操作。

2.super可用于访问父类中定义的属性。

3.super可用于调用父类中定义的成员方法。

4.super可用于在子类构造器中调用父类的构造器。

注意事项:

1.尤其当子父类出现同名成员时,可以用super表明调用的是父类中的成员。

2.super的追溯不仅限于直接父类。

3.super和this的用法相像,this代表本类对象的引用,

super代表父类的内存空间的标识。 

 1 class Person {
 2     protected String name ="张三";
 3     protected int age;
 4 
 5     public String getInfo(){
 6         return "Name:" + name + " \nage:" + age;
 7     }
 8 }
 9 
10 class Student extends Person{
11     protected String name = "李四";
12     private String school = "New Oriental";
13     public String getSchool(){
14         return school;
15     }
16 
17     public String getInfo(){
18         return super.getInfo() + "\nschool: "+ school;
19     }
20 }
21 
22 public class StudentTest{
23     public static void main(String[] args) {
24         Student st = new Student();
25         System.out.println(st.getInfo());
26     }
27 }

调用父类构造器:

1.子类中所有的构造器默认都会访问父类中空参数的构造器。

2.当父类中没有空参数的构造器时,子类的构造器必须通过this(参数列表)

或者super(参数列表)语句指定调用本类或者父类中相应的构造器。

并且只能”二选一”,还必须放在构造器的首行。

3.如果子类构造器中既未显式调用父类或本类的构造器,且父类中

又没有无参的构造器,则编译出错。

 1 public class Person{
 2     private String name;
 3     private int age;
 4     private Date birthDate;
 5 
 6     public Person(String name, int age, Date d){
 7         this.name = name;
 8         this.age = age;
 9         this.birthDate = d;
10     }
11 
12     public Person(String name, int age){
13         this(name, age, null);
14     }
15 
16     public Person(String name, Date d){
17         this(name, 30, d);
18     }
19 
20     public. Person(String name){
21         this(name, 30);
22     }
23     
24 }

this和super对比:

技术图片

Java之super关键字

标签:操作   成员方法   person   div   空间   super关键字   直接   sys   date   

原文地址:https://www.cnblogs.com/ZengBlogs/p/12168952.html

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