Java程序设计 继承

83 阅读2分钟

这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

Java程序设计 继承

类的继承格式

class 父类{}
class 子类 extends 父类{}

演示:

class Son{
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}
class Stu extends Son{
    private String stuclass;

    public String getStuclass() {
        return stuclass;
    }

    public void setStuclass(String stuclass) {
        this.stuclass = stuclass;
    }
}
public class Hello {
    public static void main(String[] args) {
        Stu a = new Stu();
        a.setName("xiao");
        a.setAge(20);
        a.setStuclass("01");
        System.out.println("姓名:"+a.getName());
        System.out.println("年龄:"+a.getAge());
        System.out.println("班级:"+a.getStuclass());
    }
}

71d78b76f411f5488cceeb3750c45646.png

通过继承的功能可以直接把父类中的操作直接拿到子类中使用

在Java中只允许单继承,不能使用多重继承,即:一个子类只能继承一个父类

允许进行多层继承,即:一个子类可以有一个父类,一个父类还可以有一个父类

子类对象的实例化过程

在继承的操作中,对于子类对象的实例化也是有要求的,即子类对象在实例化之前必须首先调用父类中的构造方法之后再调用子类自己的构造方法

class a{
    public a() {
        System.out.println("父类构造方法");
    }
}
class b extends a{
    public b(){
        System.out.println("子类构造方法");
    }
}
public class Hello {
    public static void main(String[] args) {
        b s = new b();

    }
}

19a6e72e14c6728bd04663176010f3fd.png 子类对象在实例化之前会先默认调用父类中的构造方法。就好像如果没有父亲就没有孩子

方法重写

在继承的关系中也存在着方法重写的概念,方法重写就是指子类定义了与父类中同名的方法,但是在方法重写时必须考虑到权限,即被子类重写的方法不能拥有比父类方法更加严格的访问权限。

private<default<public

class a{
    void print(){
        System.out.println("a");
    }
}
class b extends a{
    public void print(){
        System.out.println("b");
    }
}
public class Hello {
    public static void main(String[] args) {
        new b().print();
    }
}

9b5acea46483f0f5474082106e914e10.png

调用被重写的方法

class a{
    void print(){
        System.out.println("a");
    }
}
class b extends a{
    public void print(){
        super.print();
        System.out.println("b");
    }
}
public class Hello {
    public static void main(String[] args) {
        new b().print();
    }
}

42373502f299ca8095844c966e478697.png