继承的本质是对某一批类的抽象,从而实现对世界更好地建模。
extends的意思是“扩展”。子类是父类的扩展。
继承是类和类之间的一种关系。除此之外类和类之间的关系还有依赖、组合、聚合等等。
继承是两个类,一个子类(派生类),父类(基类),子类继承父类,使用关键字extends来表示。
子类和父类之间,从意义上讲应该具有"is a"的关系。
extends的意思是"扩展"。子类是父类的扩展。
Java中类只有单继承,没有多继承。理解:一个儿子只有一个爸爸,但是一个爸爸可以有多个儿子。
建立一个父类Person类
//Person 人 :父类
public class Person{
}
两个子类Student和Teacher类
//学生 is 人 :派生类,子类
public class Student extends Person {
}
//Teacher is 人
public class Teacher extends Person {
}
子类会继承父类中的public方法,但private方法无法继承,需要使用的话还是得借助getset方法。
修饰符 优先级从高到低
public 公有的 子类继承的多是public方法
protected 受保护的
default 默认的 可以不写
private 私有的 子类无法继承
我们可以通过快捷键 CTRL + H 来查看当前类的子类和父类
关于Object类,在Java中,所有的类都默认直接或间接继承Object
测试类Application
package com.demo1.demo05;
import com.demo1.demo05.demo5.Student;
public class Application {
public static void main(String[] args) {
Student xiaoming = new Student();
xiaoming.say();//由于继承 可以直接调用父类中的方法
System.out.println(xiaoming.getMoney());
//父类中的money是私有的 调用还是要用getset方法
}
}
父类Person
package com.demo1.demo05.demo5;
//Person 人 父类
public class Person {
//在Java中,所有的类,都默认直接或者间接继承object
// 修饰符 优先级从高到低
// public 公有的 子类继承的多是public方法
// protected 受保护的
// default 默认的 可以不写
// private 私有的 无法继承
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;
}
}
子类Student和Teacher
package com.demo1.demo05.demo5;
//学生 is 人 子类/派生类
//子类继承父类就会拥有父类的全部方法
public class Student extends Person {
}
//快捷键 ctrl + H 查看当前类的子类和父类
package com.demo1.demo05.demo5;
//老师 子类/派生类
public class Teacher extends Person {
}