继承
- 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
举三个类,Person(人),Student(学生),Teacher(老师)
Person类:
//Person 人:父类
public class Person {
}
Student类:
//学生 is 人:派生类/子类
public class Student extends Person{ //学生继承了人的所有东西
}
Teacher类:
//老师 is 人:派生类/子类
public class Teacher extends Person{
}
学生和老师都是人,人是学生和老师的父类,学生和老师是人的子类/派生类,父子关系。
-
extends的意思是”扩展“,子类是父类的扩展。
-
JAVA中类只有单继承,没有多继承!
一个子类只能有一个父类,一个父类可以有多个子类。 -
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
-
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
-
子类和父类之间,从意义上讲应该具有“is a”的关系。
Person类:
package oop.demo05;
//Ctrl+H 会出现继承树 发现父类Person上面还有个Object类
//在java中,所有的类,都默认直接或间接继承Object类
//Person 人:父类
public class Person /*extends Object*/{
//public 公有的 可跨包(默认选择)
//protected 受保护的 当前包内可用
//default 默认的
//private 私有的 当前类可用
private int money = 10_0000_0000;//如果把public去掉int前面什么都没有,那就是默认的default
public void say(){
System.out.println("说了一句话");
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
Student类:
package oop.demo05;
//学生 is 人:派生类/子类
//子类继承了父类,就会拥有父类的全部方法!
public class Student extends Person{ //学生继承了人的所有东西
}
Teacher类:
package oop.demo05;
//老师 is 人:派生类/子类
public class Teacher extends Person{
}
Application类:
package oop;
import oop.demo05.Person;
import oop.demo05.Student;
//一个项目应该只存在一个main方法
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();//说了一句话
System.out.println(student.getMoney());//1000000000
//继承了Object类,所以person.后面会自动出现好多方法
Person person = new Person();
person.getClass();
}
}
输出:
- object类
Ctrl+H
- super
- 方法重写