变压器的类设计

mad*_*nce 5 java oop inheritance interface

我相信,每个人都会知道变形金刚(擎天柱,威震天等).

我试图以类和接口的形式表示.目前,我没有考虑这些属性.我只是采取了一些功能.

我的设计是

interface Car{
 public void run();
 public void stop();
}

interface Robot{
 public void walk();
 public void fight();
}

class Transformer implements Car, Robot {
 // implementing all the methods
}
Run Code Online (Sandbox Code Playgroud)

所以该课程Transformer说,它可以执行汽车和机器人操作

在实例化期间

Robot R = new Transformer(); // Now the transformer is in Robot format
Car C = new Transformer();  // Now the transformer is in Car format
Run Code Online (Sandbox Code Playgroud)

我的问题是,在这里,越来越创建了两个对象Robot RCar C.因此,这传达了机器人正在创建和汽车正在创建.但我想要的是The Car is Getting Transformed to A Robot and Vice Versa

如何在设计中实现这一点.

mad*_*nce 0

刚刚在这里有了一些形状...

但这里的问题是,transformer 显式行走,而 CAR 显式运行。也就是说,它们是两个不同的对象。我想要它们,就是这样!

public class TransformersClass{

    public TransformersClass() {

        Car transformer = new Transformer(); // Initially they are Cars
        Robot robot = (Robot) transformer; // Now transformed to Robot. No new objects are created

    }

}

class Transformer implements Robot, Car {


    @Override
    public void run() {
        // TODO Auto-generated method stub

    }

    @Override
    public void walk() {
        // TODO Auto-generated method stub

    }

    @Override
    public void attack() {
        // TODO Auto-generated method stub

    }

    @Override
    public void fire() {
        // TODO Auto-generated method stub

    }

}


interface Robot {
    public void walk();
    public void attack();
    public void fire();

}

interface Car {
    public void run();
}
Run Code Online (Sandbox Code Playgroud)