题目如下:Engine(引擎),具有power(功率,整数)属性,相对应的setter和getter方法,work()方法:输出"xx功率的发动机在运转"
Car(轿车),具有Engine属性,相对应的setter和getter方法,run()方法,在方法中判断Engine对象是否为null,选择输出"发动机发动不了"或者"xx功率的发动机在运转,汽车在跑"
Benz(奔驰),继承Car类,重写run()方法
Driver(驾驶员),具有属性name(姓名),相对应的setter和getter方法,driveCar(Benz benz)方法,在方法中输出“xxx 在开车”,并调用benz的run()方法看得有点晕,谁可以帮我分析一下Car类。
Car(轿车),具有Engine属性,相对应的setter和getter方法,run()方法,在方法中判断Engine对象是否为null,选择输出"发动机发动不了"或者"xx功率的发动机在运转,汽车在跑"
Benz(奔驰),继承Car类,重写run()方法
Driver(驾驶员),具有属性name(姓名),相对应的setter和getter方法,driveCar(Benz benz)方法,在方法中输出“xxx 在开车”,并调用benz的run()方法看得有点晕,谁可以帮我分析一下Car类。
void run(Engine x);
}
interface Engine{
void work(int power );
}
class Driver{
driveCar(Car car);
}
class Benz implements Car{
@override
void run(Engine x){
}
}
Car(轿车),具有Engine属性,这个是说Engine是car的类属性,把Engine当做一个普通的属性就可以了,但是不同的是Engine这个属性可以调用Engine类的所有属性和方法……
Engine engine; public Engine getEngine() {
return engine;
} public void setEngine(Engine engine) {
this.engine = engine;
}
public void run(){
if(engine == null){
System.out.println("发动机发动不了");
}else{
System.out.println(engine.getPower()+"功率的发动机在运转,汽车在跑");
}
}
}
public class Engine {
private int power; public int getPower() {
return power;
} public void setPower(int power) {
this.power = power;
}
public void work(){
System.out.println("XX功率的发动机正在运转。。");
}}
Car类:
public class Car {
private Engine engine; public Engine getEngine() {
return engine;
} public void setEngine(Engine engine) {
this.engine = engine;
}
public void run (){
if(engine==null){
System.out.println("发动机发动不了");
}else{
System.out.println("xx功率的发动机在运转,汽车在跑");
}
}
}后面的没写,Car类就这样写,记住一句话:类是特殊的数据类型
public int power; public int getPower() {
return power;
} public void setPower(int power) {
this.power = power;
}
public Engin(int power){
this.power=power;
}
public void work(){
System.out.println(this.power+"功率的发动机在运转");
}
}
public abstract class Car {
public Engin engin=null;
public Engin getEngin(){
return engin;
}
public void setEngin(Engin engin){
this.engin=engin;
}
public Car(Engin engin){
this.engin=engin;
}
public abstract void run();
}public class BZ extends Car{
public BZ(Engin engin){
super(engin);
}
public void run(){
super.engin.work();
System.out.println("奔驰牌的发动机在发动");
}
}
public class Drive {
public String name;
public Drive(String name){
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void driveCar(BZ b){
System.out.println(name+"在驾驶汽车");
b.run();
}
}
public class test { /**
* @param args
*/
public static void main(String[] args) {
Drive d=new Drive("小明");
Engin engin=new Engin(1000);
BZ b=new BZ(engin);
d.driveCar(b); }}