目录
一、什么是继承?
Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法。若类B继承类A,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作),我们称被继承的类A为基类、父类或超类,而称继承类B为A的派生类或子类。Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
二、继承的好处
共性抽取(多个类相同的代码),提高代码复用性。
三、如何实现继承
public class 子类 extends 父类{
//子类继承了父类则可以使用父类中费private修饰的成员信息
}
public class Person {
protected String name;
protected String gendaer;
protected int age;
protected String nationality;
public Person() {
super();
}
public Person(String name, String gendaer, int age, String nationality) {
super();
this.name = name;
this.gendaer = gendaer;
this.age = age;
this.nationality = nationality;
}
}
public class Student extends Person{
public Student() {
super();
}
public Student(String name, String gendaer, int age, String nationality) {
super(name, gendaer, age, nationality);
}
}
四、继承关系下成员变量、成员方法和构造方法的访问特点
1.成员变量
等号左边的类型是谁,访问的就是谁。
2.成员方法
new的是谁,访问的就是谁的方法。
3.构造方法
- 在子类中的构造方法中,没有显示的写super(参数),则默认赠送一个super();
- 如果显示的写了一个super(参数),则不再赠送。
- super(参数),必须是第一个语句。
四、super关键字的三种用法:
super.父类的成员变量
super.父类的成员方法
super(参数);//调用父类的构造方法,只能在子类的构造方法中调用。
五、this关键字的三种用法:
this.本类的成员变量
this.本类的成员方法
this(参数);//调用本类中的其他构造方法。
注意:
- 必须写在构造方法中
- 必须是第一个语句,this(参数);和 super(参数);不能同时存在
- 写了this(参数);之后就不在赠送super();
- 构造方法不能递归
六、继承的特点
- 一个子类只能有一个直接父类
- Java是多级继承
- 一个父类可以有多个子类