A:子类、派生类、subclass
B:父类、超类、基类、superclass
- 一个类可以被多个子类继承
- Java中类的单继承性:一个类只能有一个父类。
- 子父类是相对的概念。
- 子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类
- 子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法
- 如果我们没有显式的声明一个类的父类的话,则此类继承于java.lang.oObject类
- 所有的Java类(除了java.lang.Object类之外)都直接或间接的继承于java.lang.Object类
- 意味着,所有的Java类具有java.lang.Object类声明的功能
第一部分:
- public class Creature {
- public void breath(){
- System.out.println("呼吸");
- }
- }
第二部分:Person类直接继承Creature类
- public class Person extends Creature{
- String name;
- private int age;
- public Person(){};
- public Person(String name,int age){
- this.name=name;
- this.age=age;
- }
- public void eat(){
- System.out.println("吃饭");
- }
- public void sleep(){
- System.out.println("睡觉");
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- }
第三部分:Student类直接继承Person类,相当于间接继承了Creature类
- public class Student extends Person {
- String major;
- public Student(){}
- public Student(String name,int age,String major){
- this.name=name;
- setAge(age);
- this.major=major;
- }
- public void study(){
- System.out.println("学习");
- }
- public void show(){
- System.out.println("name:"+name+",age:"+getAge());
- }
- }
最终结果:
- public class ExtendsTest {
- public static void main(String[] args) {
- Person p1=new Person();
- p1.eat();
-
- Student s1=new Student();
- s1.eat();
- s1.sleep();
- s1.name="Tom";
- s1.setAge(10);
- System.out.println(s1.getAge());
-
-
- }
- }
结果图: