39-继承







继承

  • 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模

  • extends 的意思是 “扩展” 。子类是父类的扩展。

  • JAVA 中类只有单继承,没有多继承

  • 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等

  • 继承关系的两个类,一个为子类 (派生类),一个为父类 (基类)。子类继承父类,使用关键字 extends 来表示

  • 子类和父类之间,从意义上讲应该具有 is a 的关系

示例


main 方法

public class Application {
    public static void main(String[] args) {
        Student_02 student = new Student_02();
        student.say();
    }
}

父类 Person

package Oop.Demo_02;
//Person 人  父类
public class Person_01 {
    public void say() {
        System.out.println("说了一句话");
    }
}

子类 Student

package Oop.Demo_02;
//学生  is  人  派生类  子类
public class Student_02 extends Person_01 {
}

解释

以上示例中 Student 类没有任何方法,但依旧输出了 说了一句话 ,说明 Student 完全继承了父类 Person

子类能继承父类的全部方法


mian 方法

public class Application {
    public static void main(String[] args) {
        Student_02 student = new Student_02();
        student.say();
        System.out.println(student.money);
    }
}

父类 Person

package Oop.Demo_02;
//Person 人  父类
public class Person_01 {
    public int money = 100;
    public void say() {
        System.out.println("说了一句话");
    }
}

子类 Student

package Oop.Demo_02;
//学生  is  人  派生类  子类
public class Student_02 extends Person_01 {
}

解释

当父类 Person 声明并赋值一个变量 money 之后,子类 Student 同样继承了父类的变量 money 与其数值

注意


私有的方法无法被继承

main 方法

public class Application {
    public static void main(String[] args) {
        Student_02 student = new Student_02();
        student.say();
        System.out.println(student.money);
    }
}

父类 Person

package Oop.Demo_02;
//Person 人  父类
public class Person_01 {
    private int money = 100;
    private void say() {
        System.out.println("说了一句话");
    }
}

子类 Student

package Oop.Demo_02;
//学生  is  人  派生类  子类
public class Student_02 extends Person_01 {
}

解释

会发现 main 方法中的调用报错,因为父类 Person 中的方法被改为私有,无法被子类 Student 继承

//顺序
public
protected
defoult  //默认,如果不写默认为 defoult
private

但是可以通过方法来修改 (通过封装方法)

封装方法


main 方法

public class Application {
    public static void main(String[] args) {
        Student_02 student = new Student_02();
        student.say();
        System.out.println(student.getMoney());
    }
}

父类 Person

package Oop.Demo_02;
//Person 人  父类
public class Person_01 {
    private int money = 100;
    public void say() {
        System.out.println("说了一句话");
    }
    public int getMoney() {
        return money;
    }
    public void setMoney(int money) {
        this.money = money;
    }
}

子类 Student

package Oop.Demo_02;
//学生  is  人  派生类  子类
public class Student_02 extends Person_01 {
}

如果方法私有,可以通过封装方法来调用变量

建议


  • 可以通过 ctrl + H 来查看当前类的继承树

注意


在 JAVA 中,所有的类都直接或间接继承 Objet


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇