Day33--继承

Day33--继承

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

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

JAVA 中类只有单继承,没有多继承。可以理解为,一个爸爸可以有多个儿子,但是一个儿子只能有一个爸爸

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

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

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

object 类、

super

方法重写。

示例:

创建了Person类 人

package com.liu.oop.demo05;

//Person      人
public class Person {
}

再创建了Student类

​ extends Person 继承了Person

package com.liu.oop.demo05;

//学生 is 人.
public class Student extends Person{
}

同样,创建了Teacher

package com.liu.oop.demo05;

//老师  is 人
public class Teacher extends Person{
}

当在父类创建了一个public的方法say时

package com.liu.oop.demo05;

//Person      人
public class Person {
    public void say(){
        System.out.println("说了一句话");
    }
}

是否能通过子类引用这个方法?

在Application里面,为Student实例化,然后引用方法say

package com.liu.oop;

import com.liu.oop.demo05.Student;

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        student.say();//说了一句话
    }
}

可见,子类继承父类,就会拥有父类的全部public方法

如果,父类的方法是private呢?

当我们将方法改为private时

package com.liu.oop.demo05;

//Person      人
public class Person {
    
    private void say(){
        System.out.println("说了一句话");
    }
}

在Application里面引用的方法say报错了

可见,父类修饰符为private的方法,子类是无法继承的

快捷键 Ctrl + H 打开层次结构 看到父类与子类的关系

​ 光标在父类,可以看到所有的子类

好奇怪,怎么Person上面还有一个Object类?

image-20241118160544882

当我们把Person类的全部属性和方法删除之后,发现,在Application类里面,Person还能使用好多方法

image-20241118160759484

在Java里面,所有的类默认都是Object类的子类

posted @ 2024-11-18 18:10  1hahahahahahahaha  阅读(1)  评论(0编辑  收藏  举报