Java基础知识回顾之继承性

本文深入探讨Java中的继承特性,解析其如何解决代码重用问题,详细介绍实现方式、特性及限制。并通过具体代码实例,展示子类如何继承父类的属性与方法,以及初始化顺序。

Java基础知识回顾之封装性
Java基础知识回顾之继承性
Java基础知识回顾之多态性

简介

继承的最大特征是解决代码的重用问题。特征是,一个父类可以拥有多个子类。子类继承父类的特性,并且子类可以有自己的"扩展特性"。

实现的方式

通过 class A extends B 类实现类的继承。

子类也配称为 派生类, 父类也配称为 基类(超类、Super Class)

class 父类 {
}
 
class 子类 extends 父类 {
}

特性说明

  • 子类继承父类以后,父类中声明的属性、方法,子类就可以获取到。

特别说明:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性 的设计,使得子类不可以直接调用罢了。如果需要访问,可以使用 super.属性

  • 子类除了通过继承,获取父类的结构之外,还可以定义自己的持有的成分。

extends:子类是对父类功能的“扩展”,明确子类不是父类的子集。

继承的限制

继承的限制

代码实例

继承性实现的方式

在下面的代码中,Student 类是没有名称和年龄的属性,仅仅只是继承了 Person 类,然后在本类中定义了特有的属性。

class Person{
	private String name;
	private int age;
	
	// getter 与 setter
	public void setName(String name) {this.name = name;}
	public String getName() {return this.name;}
	
	public void setAge(int age) {this.age = age;}
	public int getAge() {return this.age;}	
}

class Student extends Person{	// 子类继承 父类的
	
	// 子类特有的属性
	private String school;

	public String getSchool() {return school;}
	public void setSchool(String school) {this.school = school;}
}

public class TestDemo {

	public static void main(String[] args) {
		Student student = new Student();
		// 来自父类中的属性
		student.setAge(20);
		student.setName("张三");
		
		// 来自本类中的属性
		student.setSchool("哈佛学院--哈尔滨大学佛学院");
		
		//  姓名:张三, 年龄:20, 学校:哈佛学院--哈尔滨大学佛学院
		System.out.println("姓名:"+ student.getName() + ", 年龄:"+ student.getAge() +", 学校:"+ student.getSchool());	
	}
}

子类初始化的顺序

在子类对象构造器调用之前,一定会默认的调用父类的构造(默认使用父类的无参构造),以保证父类的对象先实例化,而后在实例化子类对象。

当子类在初始化的时候,会调用子类的构造方法,而此时会先去执行调用 super(),默认的就会去调用,写与不写都是没有关系的。

class A{
	A(){	// A的无参构造方法
		System.out.println("A类中的构造方法");
	}
}

class B extends A{
	B(){	// B的无参构造方法
	    // super();  父类中存在有无参构造方法时,加与不加是没有区别的
		System.out.println("B类中的构造方法");
	}
}

public class TestDemo {

	public static void main(String[] args) {
		new B();
		// 输出的结果:
		// A类中的构造方法
		// B类中的构造方法
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wayfreem

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值