目录

什么是继承?

继承分类

父类

super的使用


什么是继承?

        继承是面向对象最显著的特征之一。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

        比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。

继承分类

        继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类,但可以间接继承多个类。

继承分为:单继承、多继承、不同类继承同一个类。

单继承:

Java 的继承是单继承还是多继承 java中的继承分为_开发语言

 多继承:

Java 的继承是单继承还是多继承 java中的继承分为_后端_02

 不同类继承同一个类:

Java 的继承是单继承还是多继承 java中的继承分为_java_03

 继承的语法规则:

        Java使用 “ extends ” 关键字为一个类指定父类,基本语法如下:

class 类名 extends 父类名{

        类体

}

父类

        父类也可成为超类(super class)或者基类(base class),派生出来的类成为子类或者派生类,子类可以继承父类的所有成员变量和方法。

“ java.lang.Object ” 类,Object类是所有类的公共祖先,即所有java类都是Object类的子孙类。

super的使用

调用父类的构造方法

        子类可以继承父类的所有成员变量和方法,但构造方法是不能被继承的。子类必须定义自己的构造方法,但是子类可以在自己的构造方法中使用super关键字调用父类的构造方法。

子类调用父类构造方法的语法是:super( ) 或者 super(参数列表);

super()表示调用父类的无参构造方法,而语句super(参数列表)表示调用与参数匹配的父类构造方法。super语句必须放在子类构造方法的第一行。

访问父类成员

        子类除了可以使用super语句调用父类构造方法以外,还可以使用super()访问类成员便来个和类方法。

基本语法如下:

        super.父类成员变量

        super.父类方法(实参列表)

父类:People

public class People {
	private String name;
	private int age;
	private String sex;
	
	public People() {
		//调用默认的父类,Object类的构造方法
		super();
	}

	public People(String name, int age, String sex) {
		//调用默认的父类,Object类的构造方法
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
	}

	//定义People类的get和set方法
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
	
	public void print(){
		System.out.println("大家好,我是" + this.getName() + ",今年" + this.getAge() + "岁了," + "性别" + this.getSex());
	}
	
}

子类:Student

public class Student extends People{
	private int sutdentId;

	public Student() {
		//调用父类People中的无参构造方法
		super();
	}

	public Student(String name , int age , String sex ,int sutdentId) {
		//调用父类People中的有参构造方法
		super(name , age,sex);
		this.sutdentId = sutdentId;
	}
	//定义Student类的get和set方法
	public int getSutdentId() {
		return sutdentId;
	}

	public void setSutdentId(int sutdentId) {
		this.sutdentId = sutdentId;
	}
	
	public void printInOf(){
		//调用父类People中的成员方法
		super.print();
		System.out.println("学号:" + this.getSutdentId());
	}
	
}

测试类:StudentTest

public class StudentTest {
	public static void main(String[] args){
		System.out.println("---无参构造方法---");
		//创建Student类对象stu01;使用无参构造方法
		Student stu1 = new Student();
		//调用父类People成员变量赋值
		stu1.setName("张三");
		//调用父类People成员变量赋值
		stu1.setAge(20);
		//调用父类People成员变量赋值
		stu1.setSex("男");
		//调用子类Student成员变量赋值
		stu1.setSutdentId(10086);
		//调用子类Student中的成员方法
		stu1.printInOf();
		System.out.println();
		
		System.out.println("---有参构造方法---");
		//创建Student类对象stu02;使用有参构造方法
		Student stu2 = new Student("李四", 18, "男", 12315);
		//调用父类People中的成员方法
		stu2.print();
		//输出子类Student中的学号变量
		System.out.println("学号:" + stu2.getSutdentId());
	}
}

测试类运行结果

Java 的继承是单继承还是多继承 java中的继承分为_java_04