继承关系下构造方法的访问特点

本文介绍了Java中的继承概念,强调其在代码复用中的作用。通过实例展示了如何通过继承将共性属性和行为抽取到父类,并在子类中调用。此外,详细解释了构造方法的访问特点,包括`super()`调用父类构造方法以及`this()`调用本类构造方法的用法,并总结了`super`和`this`关键字的三种不同应用场景。
摘要由CSDN通过智能技术生成

在了解继承关系下构造方法的访问特点之前,我们先来了解一下继承:

作用:共性抽取,来提高代码的复用性(就是把一些事物都有的共性,可以提取出来放到一个公共类中,每个事物可以通过自己的类来调用这个公共的类里面的方法)

以上面这个图片为例,我们要输出:黑色狗在啃骨头、白色的猫在吃鱼

如果不用继承来写,就是定义一个Cat类,定义一个Dog类,里面定义各自的方法

如果用继承的方式来实现的话就可以这样:狗和猫都有两个共性的事物:颜色、吃的动作

所以我们就可以把这两个共性的事物抽取出来放到父类中去,然后子类来调用父类的方法。

如下图所示,我建了一个Animal的父类,把颜色和吃的动作都放在Animal这个父类当中,然后又建了Dog和Cat这两个子类来继承父类。        

        由第二张图片我们可以看到继承的基本语法就是:public  class  子类   extends  父类{

                //子类可以直接使用父类中非Prinvate修饰的成员变量

        }

Animal父类:

 Cat子类:

 以上就是继承的大致介绍。接下来再说一下继承关系下构造方法的访问特点:

1.super();子类构造方法中如果什么都没有写,则默认赠送super();  它一定是写在子类的构造方法中的。

 这个就是我们在子类中创建构造方法时,如果构造方法中什么都没有写,系统就会默认给这个构造方法中赠送一个    super();  如果我们写了具体的方法,则不会赠送。

super();的作用:调用父类中的无参构造方法  super(参数);:调用父类中有参数的构造方法

 如上图所示,我在Cat子类中写了一个super();它就会去调用父类Animal中的无参构造方法,如果括号中写了参数,那么它就会去调用父类中有参数的构造方法。

由此可见,我们在建立这个继承关系时,子类和父类之间就已经产生了联系。我们在创建子类对象时,是一定会去调父类的构造方法的。

2.this(参数);调用本类的其他构造方法,this(参数)不能递归

下图中我在Cat子类中创建了两个构造方法,一个有参构造,一个无参构造,我在无参构造下面调用了有参的构造方法,在有参的构造方法下面调用了无参的构造方法,此时我们发现他是报错的,由此我们可以得出this(参数);  这个是不能递归的,同时,也不能通过这个来实现自己调用自己。

 最后我们来总节一下super关键字的三种用法(子类中):

①super.父类成员变量

②super.父类的成员方法();

③super(参数);调用父类的构造方法,写在子类的构造方法中

this关键字的三种用法:

①this.成员变量//调用本来的成员变量

②this.成员方法();//调用本来中的成员方法

③this(参数);//调用本类的构造方法,注意不能递归

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值