面向对象之_继承概念

1,如果多个类具有相同的属性和行为,我们可以抽取出共性的内容定义父类,这时再创建相似的类时只要继承父类即可。

子类拥有父类的所有属性与方法,无需重新定义。并且可以直接使用非私有的父类成员。
从逻辑关系来看,子类必须属于父类的一种时,才应该继承,且在原有基础上进行功能扩展。

在这里插入图片描述

继承关系的产生通常是为了定义出功能更为具体、更为强大的子类。所以,定义子类后,一般创建子类对象使用。子类可以直接使用父类非私有的成员变量与成员方法。
(注:如果成员变量没有使用private修饰,则子类也可直接访问。)

2,Java当中的继承格式:

public class 子类 extends 父类{
	//父类的非私有方法与属性均继承过来,可以直接调用
	//可以在父类的基础上扩展方法
}
如:
父类的定义:
public class Person{
	//父类的成员变量
	private String name;
	//父类的方法
	public void eat(){
		System.out.println(“吃饭”);
	}
}
子类继承父类的定义:
public class Chinese extends Person{

	//继承的同时,可以定义子类特有的方法
	public void sleep() {
		System.out.println(“睡觉”);
}
}

3,继承注意事项

  • Java只支持单继承,不支持多继承。即只能有一个父类。
  • 父类可以继续有父类。
  • 所有类均有父类,只有Object类没有父类。
  • 在所有使用父类类型的地方均可以传入其子类对象。
  • 子类访问父类非私有化成员变量

4.继承后内存图

以Person类为例:
定义父类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
	private String name;
	private int age;

}

定义子类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Chinese extends Person{
	private Stirng address;

	
}
	
定义测试类,使用子类创建对象
public class Test{
	Chinese c = new Chinese();
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fhkkkbfgggjk/article/details/85521704