Java基础知识回顾之继承性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18948359/article/details/83868900

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类中的构造方法
	}
}

猜你喜欢

转载自blog.csdn.net/qq_18948359/article/details/83868900
今日推荐