Java语言入门教程(十三):Java语言中继承中的构造方法问题

教程(十一)中,了解了Java语言中继承的基本概念。Java中类与类的继承,是单继承,主要目的是复用。子类对象可以复用父类中权限允许的属性和方法,所以子类的构造方法和父类的构造方法之间,有一定的调用关系,本文中将进行详细介绍。 首先,需要记住一个事实:子类的任何一个构造方法,都将先调用父类某个构造方法。如子类Trainer中的构造方法: public Trainer() { } 虽然这个构造方法的方法体中什么代码也没有写,但是也调用了父类Employee的构造方法,默认调用的是Employee中无参的构造方法: public Employee() { } 至于为什么默认调用的是无参构造方法,后面会有讲解。 也就是说,任何一个子类的任何一个构造方法,都必定会调用父类的某个构造方法,但是到底会调用到哪个构造方法,取决于子类构造方法的写法。如果子类构造方法的第一条语句不是super语句,那么就默认调用父类无参的构造方法,如上面展示的代码。如果Trainer类中有如下构造方法: public Trainer(String name, double salary, String course) { this.course = course; } 这个构造方法也是先调用的Employee的无参构造方法,因为第一条语句不是super语句。但是,这个构造方法,显然是为了初始化name,salary,course,其中name和salary的初始化可以调用Employee中的这个构造方法进行: public Employee(String name, double salary) { this.name = name; this.salary = salary; } 如何才能在Trainer的构造方法中,指定先调用Employee的某个构造方法,而不是默认调用无参的哪?使用super即可。注意,super语句必须放在第一条语句。 public Trainer(String name, double salary, String course) { super(name, salary); this.course = course; } 总结一下,在继承中,有关构造方法,有如下几点需注意: 1、 子类的任何构造方法,都会调用父类的某个构造方法。 2、 如果子类的构造方法第一条语句不是super语句,那么就调用父类的无参的构造方法,与第一条语句写super()同样的效果。因此,父类中,最好保留一个无参的构造方法。 3、 在子类构造方法的第一条语句,可以通过写super语句,可以指定任何一个需要调用的构造方法,主要通过参数个数和类型区别。 了解这些知识点后,初学者对于继承中的构造方法应该比较清楚,在接下来的教程中,将逐步了解继承中的覆盖、多态等其他概念。 绝对原创,转载请注明出处
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值