继承
-
Java中的继承是面向对象编程的一个核心特性,它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。通过继承,子类可以复用父类的代码,减少重复的代码量,并扩展父类的功能。
-
在Java中,继承使用extends关键字表示。子类可以继承父类的所有非私有成员变量和成员方法,并可以添加自己的新方法和属性。子类还可以通过重写父类的方法来改变父类方法的实现。
-
继承是Java面向对象三大特性之一,其他两个特性是封装和多态。通过继承,可以实现代码重用和建立类之间的层次结构,使代码更加清晰、易于维护和扩展。
-
值得注意的是,Java只支持单继承,即一个子类只能继承一个父类。但一个类可以间接继承其他类,例如:C类继承B类,B类继承A类,则C类间接继承A类。另外,如果一个类没有显式地继承任何类,则默认继承Java SE库中的
java.lang.Object
类
继承的好处
- 提高代码的复用性
- 便于代码的扩展
- 为了以后多态的使用。是多态的前提
-
父类定义的内容,子类可以直接拿过来用就可以了,不用代码上反复重复定义了
-
需要注意的点:
- 父类private修饰的内容,子类实际上也继承,只是因为封装的特性阻碍了直接调用,但是提供了间接调用的方式,可以间接调用。
继承具有传递性
继承具有传递性:
Student -->继承自 Person -->继承自Object
Object类是所有类的根基父类。
所有的类都直接或者间接的继承自Object
实例
创建Person类
public class Person {
//属性:
private int age;
private String name;
private double height;
//提供setter getter方法:
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
//方法:
public void eat(){
System.out.println("可以吃饭");
}
public void sleep(){
System.out.println("可以睡觉");
}
}
Student继承Person类
public class Student extends Person {//子类Student 继承 父类Person
//属性:
private int sno;//学号
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
//方法:
public void study(){
System.out.println("学生可以学习");
}
}
测试
public class Student extends Person {//子类Student 继承 父类Person
//属性:
private int sno;//学号
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
//方法:
public void study(){
System.out.println("学生可以学习");
}
}