Java 构造类层次结构的最佳方法?

Java 构造类层次结构的最佳方法?,java,inheritance,Java,Inheritance,我正在尝试一个基于类层次结构的挑战。我必须尝试评估并正确构建一个包括基于交通工具的层次结构。以下是课堂选项: 自行车 汽车 循环 喷气式飞机 公路车辆 可加油 训练 运输 三轮车 在结构方面,我必须决定哪些类是抽象的,哪些类扩展了哪些类,哪些类是接口 以下是我到目前为止的想法: 运输 public abstract class Transport { //Super class. All vehicles are a form of transportation. } 自行车

我正在尝试一个基于类层次结构的挑战。我必须尝试评估并正确构建一个包括基于交通工具的层次结构。以下是课堂选项:

  • 自行车
  • 汽车
  • 循环
  • 喷气式飞机
  • 公路车辆
  • 可加油
  • 训练
  • 运输
  • 三轮车
在结构方面,我必须决定哪些类是抽象的,哪些类扩展了哪些类,哪些类是接口

以下是我到目前为止的想法:

运输

public abstract class Transport 
{

    //Super class. All vehicles are a form of transportation.

}
自行车

public abstract class Bicycle extends RoadVehicle
{

    //Bicycle is a road vehicle. Does not implement Refuelable as it does not use fuel. Is abstract because Cycle is its sub-class.

}
public class Cycle extends Bicycle
{

    //Cycle is an act which is carried out when using a Bicycle so it extends Bicycle.

}
public class JetPlane extends Transport implements Refuelable
    {

        //JetPlane is not a road vehicle but directly extends Transport because it is used as a form of transport, also implements Refuelable.

    }
public abstract class RoadVehicle extends Transport 
{

    //All classs that are road vehicles extends this clss. This seperates the road vehicles from the non-road vehicles.

}
public interface Refuelable 
{

    //An interface that declares which tyypes of transport use fuel and which do not.

}
public class Tricycle extends Transport
{

//Tricycle is a form of transport for children, it is not refuelable and does not operate on the road.

}
汽车

public class Car extends RoadVehicle implements Refuelable
{

    //Extends RoadVehicle which extends Transport and also implements Refuelable as it uses fuel.

}
循环

public abstract class Bicycle extends RoadVehicle
{

    //Bicycle is a road vehicle. Does not implement Refuelable as it does not use fuel. Is abstract because Cycle is its sub-class.

}
public class Cycle extends Bicycle
{

    //Cycle is an act which is carried out when using a Bicycle so it extends Bicycle.

}
public class JetPlane extends Transport implements Refuelable
    {

        //JetPlane is not a road vehicle but directly extends Transport because it is used as a form of transport, also implements Refuelable.

    }
public abstract class RoadVehicle extends Transport 
{

    //All classs that are road vehicles extends this clss. This seperates the road vehicles from the non-road vehicles.

}
public interface Refuelable 
{

    //An interface that declares which tyypes of transport use fuel and which do not.

}
public class Tricycle extends Transport
{

//Tricycle is a form of transport for children, it is not refuelable and does not operate on the road.

}
喷气式飞机

public abstract class Bicycle extends RoadVehicle
{

    //Bicycle is a road vehicle. Does not implement Refuelable as it does not use fuel. Is abstract because Cycle is its sub-class.

}
public class Cycle extends Bicycle
{

    //Cycle is an act which is carried out when using a Bicycle so it extends Bicycle.

}
public class JetPlane extends Transport implements Refuelable
    {

        //JetPlane is not a road vehicle but directly extends Transport because it is used as a form of transport, also implements Refuelable.

    }
public abstract class RoadVehicle extends Transport 
{

    //All classs that are road vehicles extends this clss. This seperates the road vehicles from the non-road vehicles.

}
public interface Refuelable 
{

    //An interface that declares which tyypes of transport use fuel and which do not.

}
public class Tricycle extends Transport
{

//Tricycle is a form of transport for children, it is not refuelable and does not operate on the road.

}
道路车辆

public abstract class Bicycle extends RoadVehicle
{

    //Bicycle is a road vehicle. Does not implement Refuelable as it does not use fuel. Is abstract because Cycle is its sub-class.

}
public class Cycle extends Bicycle
{

    //Cycle is an act which is carried out when using a Bicycle so it extends Bicycle.

}
public class JetPlane extends Transport implements Refuelable
    {

        //JetPlane is not a road vehicle but directly extends Transport because it is used as a form of transport, also implements Refuelable.

    }
public abstract class RoadVehicle extends Transport 
{

    //All classs that are road vehicles extends this clss. This seperates the road vehicles from the non-road vehicles.

}
public interface Refuelable 
{

    //An interface that declares which tyypes of transport use fuel and which do not.

}
public class Tricycle extends Transport
{

//Tricycle is a form of transport for children, it is not refuelable and does not operate on the road.

}
可加油

public abstract class Bicycle extends RoadVehicle
{

    //Bicycle is a road vehicle. Does not implement Refuelable as it does not use fuel. Is abstract because Cycle is its sub-class.

}
public class Cycle extends Bicycle
{

    //Cycle is an act which is carried out when using a Bicycle so it extends Bicycle.

}
public class JetPlane extends Transport implements Refuelable
    {

        //JetPlane is not a road vehicle but directly extends Transport because it is used as a form of transport, also implements Refuelable.

    }
public abstract class RoadVehicle extends Transport 
{

    //All classs that are road vehicles extends this clss. This seperates the road vehicles from the non-road vehicles.

}
public interface Refuelable 
{

    //An interface that declares which tyypes of transport use fuel and which do not.

}
public class Tricycle extends Transport
{

//Tricycle is a form of transport for children, it is not refuelable and does not operate on the road.

}
列车

public class Train extends Transport implements Refuelable
{

    //Trains are not a road veicle but do extend Transport and are refuelable.

}
三轮车

public abstract class Bicycle extends RoadVehicle
{

    //Bicycle is a road vehicle. Does not implement Refuelable as it does not use fuel. Is abstract because Cycle is its sub-class.

}
public class Cycle extends Bicycle
{

    //Cycle is an act which is carried out when using a Bicycle so it extends Bicycle.

}
public class JetPlane extends Transport implements Refuelable
    {

        //JetPlane is not a road vehicle but directly extends Transport because it is used as a form of transport, also implements Refuelable.

    }
public abstract class RoadVehicle extends Transport 
{

    //All classs that are road vehicles extends this clss. This seperates the road vehicles from the non-road vehicles.

}
public interface Refuelable 
{

    //An interface that declares which tyypes of transport use fuel and which do not.

}
public class Tricycle extends Transport
{

//Tricycle is a form of transport for children, it is not refuelable and does not operate on the road.

}

这是正确的还是您能看到任何错误?我这样做是为了测试我在继承方面的知识,因此任何建议或指针都将非常感谢。谢谢。

鉴于我们无法说出每个实体中应该包含的方法,我将从以下内容开始:

interface Transport
interface Refuelable
interface RoadVehicle extends Transport
interface Cycle extends RoadVehicle

class Bicycle implements Cycle
class Tricycle implements Cycle
class Car implements RoadVehicle, Refuelable
class JetPlane implements Transport, Refuelable
class Train implements Transport

征求我们的意见是违反规定的。如果你想让我们改进一些你有疑问的东西,我们可以帮助你。如果你把它组织成一棵树来帮助你理解它是如何工作的,那就好多了。请记住,继承的最佳答案通常是“不要”:更喜欢组合而不是继承。从高层次上看,这看起来很好,但除非你正确定义行为(方法),否则没有人能知道。哦,好吧,对不起,我猜征求意见不是应该在这里发布的问题类型。我应该把它取下来吗?非常确定自行车应该是自行车和三轮车的超类……进一步说,
火车
的一个子类可能是
柴油动力
,它将扩展
火车
,并实现
可加油