Day010 继承
继承(面向对象第二大特性)
-
继承的本质是对一批类的抽象,从而实现对现实世界更好的建模。
-
extends的意思是“扩展”。子类是父类的扩展。
-
Java中类只有单继承,没有多重继承!
-
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
-
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
-
子类和父类之间的关系,从意义上讲应该具有“is a”的关系。
-
object类:在Java中,所有的类,都默认直接或者间接继承Object类
-
super
-
方法重写
//在Java中,所有的类,都默认直接或者间接继承Object类
//Person 人:父类(基类)
public class Person {
//public
//protected
//private
//default
private int money=10_0000_0000;
public void say(){
System.out.println("说了一句话");
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
//学生 is 人:子类(派生类)
//子类继承了父类,就会拥有父类的全部属性和方法!但是需要注意的是,对于所有的非私有(no private)操作属于显式继承(可以直接利用对象操作),而所有的私有操作属于隐式继承(间接完成)
public class Student extends Person{
//在类里ctrl+H 显示继承树
}
//Teacher is 人:子类(派生类)
public class Teacher extends Person{
}
public static void main(String[] args) {
Student student = new Student();
student.say();
System.out.println(student.getMoney());
}
输出结果
说了一句话
1000000000
注意点
-
Java之中只允许多层继承,不允许多重继承,Java存在单继承局限。
//多层继承 class A {} class B extends A {} class C extends B {} //多重继承 class A {} class B {} class C extends A,B {} // 一个子类继承了两个父类
-
在Java中,所有的类,都默认直接或者间接继承Object类。
-
子类继承了父类,就会拥有父类的全部属性和方法!但是需要注意的是,对于所有的非私有(no private)操作属于显式继承(可以直接利用对象操作),而所有的私有操作属于隐式继承(间接完成)。
-
在继承关系之中,如果要实例化子类对象,会默认先调用父类构造,为父类之中的属性初始化,之后再调用子类构造,为子类之中的属性初始化,即:默认情况下,子类会找到父类之中的无参构造方法。
-
在类里ctrl+H 显示继承树。