Java特性——继承
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。即对类进一步抽象。
entends——子类是对父类的拓展
**继承:即扩展,子类为父类的扩展 **
父类
↓ ↓
子类1 子类2
↓ ↓ ↓ ↓
对象1 对象2 对象3 对象4
子类:继承父类,即父类的派生类
-
继承是类与类之间的关系,类与类之间的关系还有:依赖、组合、聚类
-
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,用extends表示
public class Student extends Person {
}
-
子类与父类间从实际上讲为"is a"的关系
子类会继承父类的所有方法/属性:前提:修饰符为public时
对父类私有private的方法/属性而言:不能被子类拥有
默认权限:default,另有protected
优先级:public > protected > default > private
对private的属性而言,子类可以通过public的get/set方法类获取父类的private的属性。如:父亲私有的钱,子类不能直接继承,但是可以通过父亲留下的public方法来get/set这笔私有的钱
一般就属性是私有的
//Person类
public class Person {
public int money = 10_0000_0000;
public void say(){
System.out.println("说了一句话");
}
}
//学生is人
public class Student extends Person {
}
//直接调用Student
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();//此处student继承了父类Person的say方法
System.out.println(student.money);
}
}
//输出:说了一句话
1000000000
//Person类
public class Person {
private int money = 10_0000_0000;
public int getMoney() {
return this.money;
}
public void setMoney(int money) {
this.money = money;
}
public void say(){
System.out.println("说了一句话");
}
}
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();//此处student继承了父类Person的say方法
System.out.println(student.getMoney());
}
}
//结果一致
快捷键:ctrl + H
可以查看当前窗口程序的类的继承关系树(当前类的子类、父类)
object类:默认初始存在的,java中的所有的类都默认直接(自定义的父类)或间接(自定义的子类)继承object类
为java.lang包下的;object可理解为java中类的祖先
//Person类
public class Person {
}
public class Application {
public static void main(String[] args) {
Person person = new Person();
person.//此处可调用object中的方法,即继承object类
}
}
java中只有单继承,即一个子类只能有一个父类,而父类可以有多个子类。