gpt4 book ai didi

java - 接口(interface) > 抽象类 > 具体类模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:16:19 26 4
gpt4 key购买 nike

我找到了 reference architecture其中所有域类 (POJO) 都继承一个抽象类,而抽象类又实现一个接口(interface)。例如:

public interface User {  
public abstract operation1();
public abstract operation2();
...
}

public abstract class AbstractUser implements User {
String name;
// only attributes
...
}

public abstract class XyzUser extends AbstractUser {
...
}

你们知道这个设计是不是某种模式吗?你能解释一下为什么架构是这样设计的(接口(interface) --> 抽象类 --> 具体类)吗?

最佳答案

首先要明白什么是接口(interface),抽象类,具体类。

让我们在这里举个例子:

  public interface Vehicle{
public void startEngine();
public void run();
}


public abstract class Bus implements Vehicle{
public void startEngine(){
System.out.println("Engine Starting of bus");
}
}

public abstract class Plane implements Vehicle{
public void startEngine(){
System.out.println("Engine Starting of plane");
}
}

public class VolvoBus extends Bus{

public void run(){
System.out.println("Running at 100kmp/h");
}



}


public class NonACBus extends Bus{

public void run(){
System.out.println("Running at 50kmp/h");
}
}


public class Test{

public static void main(String[] args){
VolvoBus volvoBus=new VolvoBus();
NonACBus nonAcbus=new NonACBus();
volvoBus.startEngine();
volvoBus.run();
nonAcBus.startEngine();
nonAcBus.run();
}
}

在上面的示例中,我们有公共(public)汽车通用的代码,无论是 AC 总线还是沃尔沃,所以它是在 Bus 类中编写的,但 run() 并不是所有人都通用的,所以它没有在 Bus 类中实现,而是保持抽象状态,所以它的子类将根据要求实现该基础。

我的代码会更好地解释你:)谢谢

关于java - 接口(interface) > 抽象类 > 具体类模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789590/

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