Java类的设计----关键字super
来源:互联网 发布:跆拳道功夫大师软件 编辑:程序博客网 时间:2024/06/14 03:53
在Java类中使用super来引用父类的成分
super可用于访问父类中定义的属性
super可用于调用父类中定义的成员方法
super可用于在子类构造方法中调用父类的构造方法
super的追溯不仅限于直接父类
关键字 super举例
public class Person {
private String name;
private int age;
public String getInfo() {
return "Name: " + name + "\nage: " + age;
}
}
public class Student extends Person {
private String school = "New Oriental";
public String getSchool() { return school; }
public String getInfo() {
// 调用父类的方法
return super.getInfo() +"\nschool: " +school;
}
}
构造方法不能继承
子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法
在一个Java类中可以通过两种方式获得构造方法
使用系统默认的无参数构造方法
显式定义一个或多个构造方法
一旦显式定义了构造方法,则系统不再提供默认构造方法
调用父类构造方法
在子类的构造方法中可使用super(参数列表)语句调用父类的构造方法
如果子类的构造方法中没有显示地调用父类构造方法,也没有使用this关键字调用重载的其它构造方法,则系统默认调用父类无参数的构造方法
如果子类构造方法中既未显式调用父类构造方法,而父类中又没有无参的构造方法,则编译出错
调用父类构造方法举例 (1)
public class Person {
private String name;
private int age;
private Date birthDate;
public Person(String name, int age, Date d) {
this.name = name;
this.age = age;
this.birthDate = d;
}
public Person(String name, int age) {
this(name, age, null);
}
public Person(String name, Date d) {
this(name, 30, d);
}
public Person(String name) {
this(name, 30);
}
// ……
}
调用父类构造方法举例 (2)
public class Student extends Person {
private String school;
public Student(String name, int age, String s) {
super(name, age);
school = s;
}
public Student(String name, String s) {
super(name);
school = s;
}
public Student(String s) {
// 编译出错: no super(),系统将调用父类无参数的构造方法。
school = s;
}
}
子类对象的实例化过程
super(…)和this(…)调用语句不能同时在一个构造函数中出现
super(…)或this(…)调用语句只能作为构造函数中的第一句出现
- Java类的设计----关键字super
- java的super关键字
- Java的super关键字
- Java super关键字的使用
- java中super关键字的使用
- java继承中super关键字的用法
- 【JAVA】this和super关键字的用法
- java中this,super关键字的点点滴滴
- JAVA中super关键字的用法
- java的super关键字和this指针
- Java的this与super关键字
- java关键字this、super的用法
- Java编程中super关键字的用法
- [面试] [java] super 关键字的使用
- java中关键字super的用法
- java中super关键字的用法
- Java中super 关键字的用法
- [Java] super关键字:引用父类成员
- linux管道通信 半双工通信
- Java类的设计----访问控制
- spring集成redis的lettuce连接pom文件配置
- Java类的设计----方法的重写、覆盖
- StringBuilder 对tab选项字段进行分割,处理(StringBuilder的用法)
- Java类的设计----关键字super
- Python可变对象v.s.不可变对象,引用
- Java类的设计----多态性及其应用
- Java类的设计----Object 类
- 冒泡进阶
- ASP.NET 如何在.cs文件中为前端添加JS代码
- 高级类特性----static关键字
- K-Means算法(思想)
- $.ajax属性及用法