0


继承关系下构造方法的访问特点注意:把this()访问本类其他成员方法也加进去


前言

要说继承关系下构造方法的访问特点,首先要知道继承的意义,Java为社么要继承?构造方法怎么访问?通过什么方式继承?关键字是什么?


提示:以下是本篇文章正文内容,下面案例可供参考

一、继承是什么?设置继承关系有什么好处?

    继承是面向对象三大特征之一。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。子类可以直接调用父类中非private修饰的变量或者方法。

     好处:共性抽取(多个类中相同的代码),提高代码的复用性

1、关键字 (extends)

public class Test01 extends Person{

//class 类关键字,extends 继承关键字,Person 要继承的父类

}

2.构造方法

设置构造方法

public class Student {
//创建Student类,设置无参的构造方法
public Student() {
        
        // TODO Auto-generated constructor stub
    }
}

3.子类调用父类的构造方法

关键字:super

提到super,在这里我简单的介绍以下super和this关键字的区别,这是我在学习中,老师为我们总结的二者的区别:
superthis super可以调用父类中的成员变量this可以调用本类中的成员变量super可以调用父类中的成员方法this可以调用本类中的成员方法super()调用父类的无参构造方法
this()调用本类的无参构造方法
super()和this()不能同时出现,因为它们需要被写在构造方法的第一行
总结一下:

    继承关系下构造方法的访问特点:
      *             a:在子类的构造方法中,如果没有显示的写super(参数),则默认赠送一个super();
      *             b:如果显示的写了一个super(参数),则不再赠送
      *             c:super(参数),必须是第一个语句 
      *             
      *             在创建子类对象的时候,一定会调用父类的某个构造方法。

            需要注意的是this()不可以递归调用有参和无参构造方法,另外我们可以看到如果使用快捷方法创建父类构造时,工具会自动生成一个super(),实质是在引用顶级父类的Object父类对象
public class Fu {
    public int a = 10;
    public void method() {
        System.out.println("Fu.method()");
    }
    
    public Fu() {
        System.out.println("Fu.Fu()");
    }
    public Fu(int a) {
        System.out.println("Fu.Fu(int a)");
    }
}
public class Zi extends Fu{
    public int a = 20;
    public void method() {
        System.out.println("Zi.method()");
    }
    //构造方法
    public Zi() {
        //super();//调用父类的无参数的构造方法
        super(10);
        System.out.println("Zi.zi()");
    }
}
public class Test01 {
    public static void main(String[] args) {
        Zi zi = new Zi();        
        System.out.println(zi.a);
        zi.method();
        
        new Zi();
    }
}

运行结果:

Fu.Fu(int a)
Zi.zi()
20
Zi.method()
Fu.Fu(int a)
Zi.zi()


总结

以上就是我对继承关系下构造方法访问的特点,Java继承是单继承多级继承,所以只要熟练的掌握了继承的访问特点,知道变量或者方法的调用又来,从哪来,要被谁调用,就会很少迷路,继承也为多态的实现奠定了基础。

标签: eclipse java

本文转载自: https://blog.csdn.net/m0_65004039/article/details/126191483
版权归原作者 来日方长。。。。long 所有, 如有侵权,请联系我们删除。

“继承关系下构造方法的访问特点注意:把this()访问本类其他成员方法也加进去”的评论:

还没有评论