面向对象:继承
定义,特点
-
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
-
extends的意思是"扩展"。子类是对父类的扩展。
-
Java中 :类,只有单继承,没有多继承!(一个儿子只有一个爸爸,但一个爸爸可以有多个儿子)
-
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖,组合,聚合等。
-
继承关系的两个类,一个为子类(派生类);一个为父类(基类)。子类继承父类,使用关键词extends来表示。
- 注意一般都是public方法。
- 私有的属性和方法private,默认的(default默认的)还有(protected受保护的)的是无法直接继承的,但可以通过封装的思想,用get/set,方法来操作。
-
子类继承父类之间,从意义上讲应该具有“is a”的关系。
代码演示
package com.yuecheng.oop.Demo05;
//父类
public class Person {
//public
//private(私有)
//default默认的
//protected受保护的
public int money = 10_0000_0000;
public void say(){
System.out.println("说了一句话");
}
//当属性或方法私有时,可以通过在学习封装时学到的 get/set来调用。
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
子类
package com.yuecheng.oop.Demo05;
//学生也是人(子类,派生类): 学生 is 人;
//子类继承父类,就会继承父类所有的方法
//注意:private(私有方法或属性) 私有的东西是无法继承的
public class Student extends Person{
}
此时 子类子类,为空没有任何方法和属性,但依然可以输出
package com.yuecheng.oop;
import com.yuecheng.oop.Demo05.Student;
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();
System.out.println(student.money);
}
}
[此时子类为空却依然能输出,是因为它继承了父类的方法和属性。
-
ovject
- 在Java中所有的类都默认直接或间接继承object类,object类是所有类的父类。
- 所以说写了一个类,即使我们没有继承任何类,它也是默认继承object类的。
-
super
-
方法重写