gpt4 book ai didi

java - 使用抽象类创建对象

转载 作者:行者123 更新时间:2023-12-02 12:26:33 25 4
gpt4 key购买 nike

我试图更好地理解 oop ,但我不明白如何使用抽象类。我有一个汽车类,汽车可以是梅赛德斯、奥迪和沃尔沃。奔驰车可乘坐5名乘客,可开门、挡窗;奥迪车可以坐6名乘客,而且只能开门。沃尔沃汽车只能搭载3名乘客。因此,为了做到这一点,我创建了一个界面:

public interface Car{
void openDoor();
void blockWindows();
int passengers=0;
}

然后为每辆车创建一个抽象类:

public abstract class  Mercedes implements Car{
public void openDoor(){
System.out.println("Mercedes opendoor");
}
public void blockWindow(){
System.out.println("Mercedes blockwindow");
}
public Mercedes()
{
int passengers=5;
}



public abstract class Audi implements Car{
public void openDoor(){
System.out.println("Audi opendoor");
}
public Audi()
{
int passengers=6;
}
}

public abstract class Volvo implements Car{

public Volvo()
{
int passengers=6;
}

现在,我需要创建一个最多可运输 15 辆汽车的对象。所以我写道:

public class TransportCars{
Car[] transport=new Car[15];}

//现在我需要放入不同类型的汽车的运输数组中。但我无法实例化抽象类。我应该使用其他东西吗?我使用抽象类是因为我可以实现一个接口(interface)并仅使用它的一部分

最佳答案

基本上你的设计是完全错误的,因为你对java还不熟悉,你首先需要了解基础。

设计应该是这样的:

汽车是一种车辆,因此关系。

这样你就可以创建一个类车辆。

class Vehicle {
// properties of Vehicle like type of Vehicle, numberOfWheels etc.
String vType;
int numberOfWheels;
int passengers;
}

// Car is a Vehicle so it should extend Vehicle
class Car extends Vehicle {
String type; // sedan or hatchback
String manufacturer; // Mercedes, BMW, Audi, Volvo etc.
}

如果你想限制Vehicle不被实例化,可以将其声明为抽象类

关于java - 使用抽象类创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20044199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com