super关键字要点

用于访问父类的成员:

super.成员变量

super.成员方法([参数1],[参数2]...)


使用supe关键字调用父类的构造方法:

super([参数1],[参数2]...)

注意:

在子类的构造方法中一定会调用父类的某个构造方法,这时可以在子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法(当父类定义了带参数的构造方法没有定义无参的构造方法时,父类是没有默认的无参的构造 方法的)。

子类在实例化时默认调用了父类无参的构造方法,所以在定义一个类时,如果没有特殊的需求,尽量在类中定义一个无参的构造方法,避免被继承时出现错误。

package study;
class Animal{

public Animal(String name) {
System.out.println("我是一只"+name);
}
}
class Dog extends Animal{

}
public class Example04 {
public static void main(String[] args) {
Dog dog=new Dog();
}
}

结果:




子类必然会调用父类的构造方法。
要不然是你显式调用,要不然是Java自动调用。

如果父类有不带参数的构造方法,或者父类没有任何构造方法(也就是说有缺省构造方法),那么子类可以不显式调用,子类会自动调用super();

如果父类有带参数的构造方法,却没有不带参数的构造方法,那么如果子类没有显式调用父类构造方法,那么编译会报错。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值