Java:类与对象之继承与组合

在类与对象的世界中,继承与组合是一个很常用的手段。一个类是一种具有共同特征的事物的抽象。而在不同种类的事物之间,又存在着联系,所以类之间也会存在联系。这种联系暂时可以看成是两种,即 “是一个” 联系与 “有一个” 的联系。“是一个”关系的表现形式就是继承,“有一个”的表现形式对应的就是组合。

为了进行理解我们举一个例子。
已知有两个类,一个是 Transportation (交通工具),另一个是 Wheel (轮子)。

class Transportation{
	int seat = 0;
	void load(){
		if(seat<20){
			System.out.println("载客数+1");
			seat++;
		}else{
			System.out.println("已经满载");
		}
	}
}

class Wheel{
	void run(){
		System.our.println("运动");
	}
}

然后接下来我们要写一个新的类 bus 。我们知道:公共汽车是一种交通工具。所以我们选择继承 Transportation 类;公共汽车有车轮,所以我们在bus类中组合一个wheel对象。

class Bus extendsTransportation{
	Wheel wheel;
	public Bus(){
		wheel = new Wheel();
	}
}

这样在我们需要一辆公共汽车的时候:

class Main{
	public static void main(String[] args){
		Bus bus = new Bus();
		bus.load();
		bus.wheel.run();
	}
}

这样我们就能载客然后开始运行了。

在这个例子中,我们选择了让Bus继承了Transportation,组合了Wheel对象。如果让Bus继承Wheel就会显得很奇怪(尽管在操作上是可行的)。在实际的程序编写中,遵循“是一个”和“有一个”原则来合理地使用继承与组合,能够让我们的思路更加清晰,体系更加健全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值