Java继承 子类实例化:子类构造器和父类构造器

本文讲解了Java中子类构造器如何默认调用父类的无参构造,以及当父类只有有参构造时的处理方法。通过实例演示了`Person`和`Employee`类的构造过程,强调了显式调用父类构造器的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结论

先说结论:

  • 子类的构造器中默认调用父类的无参构造器(默认在子类构造器中的第一行;以此来维持继承关系),显式调用的话必须写在子类构造器中的第一行。
  • 如果父类中只有有参构造的话,很可能会在子类构造器中报错(因为无法隐式地调用父类的无参构造器了),这时候可以有两种方法:在父类中写上无参构造 或者 在子类构造器的第一行显式地调用父类的有参构造器。
//Student.java
public class Student extends Person{
	private String name = "Feng";
	public Student(){
		System.out.println("子类的无参执行了");
	}
}

class Person {
	private String name = "NOName";
	public Person(){
		System.out.println("父类的无参执行了")
	}
}

//Test.java
public Test{
	public static void main(String[] args){
		Student s = new Student();
	}
} 

题目

在这里插入图片描述

class Person {
	String name = "No name";
	public Person(String nm) {
		name = nm;
	}
}
class Employee extends Person {
	String empID = "0000";
	public Employee(String id) {
		empID = id;
	}
}
public class Test {
	public static void main(String args[]) {
		Employee e = new Employee("123");
		System.out.println(e.empID);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值