3.2.1 继承的概念

生活中的继承

在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。
例如,食草动物和食肉动物都属于动物,程序中便可以描述为食草动物和食肉动物继承自动物,动物是父类,食草动物和食肉动物是子类。
同理,兔子和羊继承自食草动物,食草动物又成了父类,兔子和羊是子类;狮子和豹继承自食肉动物,食肉动物又成了父类,狮子和豹是子类。
在这里插入图片描述
子类具有父类的一般特性(包括属性和行为),以及自身特殊的特性。

程序中的继承

在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类。子类继承父类的属性和方法,使得子类对象(实例)具有父类的特征和行为。
继承的语法格式:
class 父类{
……
}
class 子类 extends 父类{
……
}

例1:

class Animal{
	protected String name;
	protected int age;
	public void eat(){
		System.out.println(name+"正在进食。");
	}
}

class Herbivore extends Animal{ //食草动物类
}

public class Test{
	public static void main(String[] args) {
		Herbivore h1=new Herbivore();
		h1.name="兔子小白";
		h1.eat();
	}
}

上面的代码运行结果:

兔子小白正在进食。

上面的食草动物类Herbivore继承自动物类Animal,所以即使Herbivore类中一行代码都没有,但它仍拥有从父类那里继承过来的属性和方法,所以在main方法中可以给Herbivore类的对象h1的属性赋值,调用其方法。
当然,子类也是可以拥有自己的属性和方法的:

class Animal{  //父类,动物类
	protected String name;
	protected int age;
	public void eat(){
		System.out.println(name+"正在进食。");
	}
}

class Herbivore extends Animal{ //子类,食草动物类
	String color;
	public void show(){
		System.out.println(name+"的皮毛是"+color);
	}
}

class Carnivore extends Animal{ //子类,食肉动物类
	String food;
	public void hunt(){
		System.out.println(name+"正在狩猎食物");
	}
}

public class Test{
	public static void main(String[] args) {
		Herbivore h1=new Herbivore();
		h1.name="兔子小白";
		h1.color="白色";
		h1.eat();
		h1.show();
	}
}

上面的代码中,定义了父类Animal(2个属性、1个方法),子类Herbivore、Carnivore,子类从父类那里继承了父类的成员(红色字部分的2个属性、1个方法),自己又各自另外定义了属性和方法(蓝色字部分的1个属性、1个方法)。
在这里插入图片描述

几个要点

  1. 在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个父类
  2. 多个类可以继承一个父类,也就是说一个类可以有多个子类
  3. 在Java中,多层继承也是可以的,即一个类的父类可以再继承另外的父类。例如,C类继承自B类,而B类又可以继承自A类,这时,C类也可称作A类的子类。
  4. 注意父类成员的访问权限,子类不能访问父类中private级成员,位于不同包的子类只能访问父类中protected和public级的成员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值