继承与super关键字

继承(Inheritance):java 是单继承的,意味着一个类只能从另一个类继承。Java中的继承使用extends关键字。

public class Child extends Parent
{
public Child()
{
System.out.println(“child”);//执行前,发现继承自Parent,就先去执行父类的不带参数的构造方法
}
public static void main(String[] args)
{
Child child=new Child();
}

}
class Parent
{
public Parent()
{
System.out.println(“parent”);
}
}
//打印结果
//parent
//child

原因:执行子类构造方法时,它发现是继承自父类,所以要先去执行父类的无参数构造方法。先有父亲,才有孩子。

————————————————————————————————————————————————————————————————————

我们小小的改一下代码:将父类的构造方法加一个参数:

class Parent
{
public Parent(int i)
{
System.out.println(“parent”);
}
}

会编译出错:

原因:当生成子类对象时,Java默认首先调用父类的不带参数的构造方法。

————————————————————————————————————————————————————————————

我们再对父类的构造方法进行重载:
public class Child extends Parent
{
public Child()
{
System.out.println(“child”);
}
public static void main(String[] args)
{
Child child=new Child();
}

}
class Parent
{
public Parent()
{
System.out.println(“无参数父类构造方法”);
}
public Parent(int i)
{
System.out.println(“parent”);
}
}
//打印结果
//无参数父类构造方法
//child

—————————————————————————————————————————————————————————————————————————————————————

我们可以根据所需,改变Java这种自动寻找父类无参数构造方法的机制,这时就需要用到super关键字。表示对父类对象的引用。

public class Child extends Parent
{
public Child()
{
super(1);//参数 表示我想要调用的特定父类的构造方法的参数,也就是调用父类有参数的那个构造方法
System.out.println(“child”);
}
public static void main(String[] args)
{
Child child=new Child();
}

}
class Parent
{
public Parent()
{
System.out.println(“无参数父类构造方法”);
}
public Parent(int i)
{
System.out.println(“parent”);
}
}
//打印结果
//parent
//child

总结:(1)当生成子类对象时,Java默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类的对象。接下来,再去调用子类的构造方法,生成子类的对象。(要想生成子类的对象,必须先生成父类的对象,没有父类对象就没有子类对象,比如说:没有父亲,就没有孩子)
(2)super关键字:super表示对父类对象的引用
(3)如果子类使用super关键字显示的调用父类的某个构造方法,那么在执行的时候会自动寻找与super对应的构造方法而不会再去寻找父类不带参数的构造方法。与this一样,super也必须要作为构造方法的第一条语句执行,前面不能有任何可执行语句。

(4)关于继承:
父类有的,子类也有;
父类没有的,子类可以增加;
父类有的,子类可以改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值