简述Java中的继承
继承的概念
今天又学习会Java中的继承,那么什么是继承呢? 继承就是扩展,假设现在有一个Person人的类,有属性name姓名、age年龄,但我们现在要创建好多类,如Student学生类、Teacher教师类等,都属于人这个范畴,都要拥有name姓名、age年龄及相应的setter、gettert属性,如果每个类都同时加入这些属性及方法,必定会造成代码冗余和结构混乱,而继承很好地解决了这个问题,继承父类的子类可以使用父类中的方法和属性。(注:父类中的私有属性不可直接使用哦,需要由getter方法来获取)
类的继承格式
class 父类{} //定义父类
class 子类 extends 父类{} //使用extends关键字实现继承
实例测试
package chapter_six;
class Person{ //定义Person为父类
private String name; //私有属性name姓名
private String sex; //私有属性sex性别
public String getName() { //相应的setter和getter方法
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
class Student extends Person{ //继承于Person类的Student类
private String school; //定义school学校属性
public String getSchool() { //相应的setter和getter方法
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
public class Pag178 {
public static void main(String[] args) {
Student student = new Student(); //主方法中实例化Student类对象student
//此时Student类中未定义name和sex属性及对应的setter和getter方法
student.setName("张三"); //使用student对象设置姓名
student.setSex("男"); //设置性别
student.setSchool("北京大学"); //设置所在大学
//输出结果信息
System.out.println(student.getName() + "\n" + student.getSex() + "\n" + student.getSchool());
}
}
测试结果
张三
男
北京大学
继承的进一步研究
- 在实例化子对象之前会自动先调用父类构造方法,然后再调用子类构造方法。就像是要想有儿子必须得先有儿子的父亲一样。
- 子类可以重新设定父类属性值或覆写父类中的方法,继承在实现时采用就近原则,即访问子类中的属性和方法时,首先在子类中查找,若子类不存在,再去父类中进行查找引用。
- 继承只能允许多层继承,即A可以继承B, B又可以继承C。而不可以实现多重继承,即一个子类只能有一个父类。