交通工具接口类案例

题目:

有一个交通工具接口类Vehicles,有work接口, 有Horse类和Boat类分别实现Vehicles,创建交通工具工厂类,有两个方法分别获得交通工具Horse和Boat;有Person类,有name和Vehicles属性,在构造器中为两个属性赋值,实例化Person对象“唐僧”, 要求一般情况下用Horse作为交通工具,遇到大河时用Boat作为交通工具

代码演示:

package com.atguigu.homework;

public class Homework04 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person person = new Person("唐僧", null);
		person.passRiver();
		person.commonCond();
	}

}

// 根据要求做相应的分析
interface Vehicles { // 接口
	public void work();// 方法
}

class Horse implements Vehicles { // 具体交通工具

	@Override
	public void work() {
		// TODO Auto-generated method stub
		System.out.println("一般情况下 使用马马~~");
	}

}

class Boat implements Vehicles { // 具体的交通工具

	@Override
	public void work() {
		// TODO Auto-generated method stub
		System.out.println("过河 使用船");

	}

}

// VehiclesFactory=> 根据不同的情况,返回对应的交通工具
class VehiclesFactory {
	// 需要你自定一个条件来玩
	// 分成两个方法
	public static Vehicles getVehicles(String cond) {
		if ("一般".equals(cond)) {
			return new Horse();
		} else if ("过河".equals(cond)) {
			return new Boat();
		} else {
			return null;
		}
	}

	public static Vehicles getBoat() {
		return new Boat();
	}

}

// 每个
class Person {
	private String name;
	private Vehicles vehicles;

	public Person(String name, Vehicles vehicles) {
		super();
		this.name = name;
		this.vehicles = vehicles;
	}

	public String getName() {
		return name;
	}

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

	public Vehicles getVehicles() {
		return vehicles;
	}

	public void setVehicles(Vehicles vehicles) {
		this.vehicles = vehicles;
	}

	// 写两个方法来适应不同的情况
	public void passRiver() {
		// 使用到自己定义工厂类
		Vehicles vehicles2 = VehiclesFactory.getVehicles("过河");
		System.out.println(name);
		vehicles2.work();
	}

	public void commonCond() {
		// 使用到自己定义工厂类
		Vehicles vehicles2 = VehiclesFactory.getVehicles("一般");
		System.out.println(name);
		vehicles2.work();
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

destiny- freedom

感觉怎么样呐?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值