【发布时间】:2021-12-16 19:44:42
【问题描述】:
为了演示SOLID原理的Open/Closed原理,我实现了如下代码。
代码:
interface IFaculty{
void admin();
}
class ITFac implements IFaculty{
@Override
public void admin() {
System.out.println("IT Fac Admin");
}
}
class MedFac implements IFaculty{
@Override
public void admin(){
System.out.println("Med Fac Admin");
}
}
class University{
public void adminFaculty(IFaculty iFaculty){
iFaculty.admin();
}
}
为了测试上面的代码,我尝试在main类的main方法中调用adminFaculty()方法如下。
代码:
public class Main {
public static void main(String[] args) {
University u1 = new University();
u1.adminFaculty(); // cannot call this method without passing parameters
}
}
但是我不能在不传递相关参数的情况下调用该方法:IFaculty 的一个对象。但我不能这样做。有人知道如何从 main 方法调用 adminFaculty() 吗?或任何方式调用 adminFaculty() 并运行代码以提供相关输出。?
谢谢。
【问题讨论】:
-
“但我不能这样做。” 为什么不呢?
u1.adminFaculty(new MedFac()); -
是否可以传递 IFaculty 对象,而不是 MedFac 对象。可能是我问的是愚蠢的。不过谢谢你的回复。
-
没有
IFaculty对象这样的东西。只是一个接口,不能实例化接口。 -
我明白@RobbyCornelissen。感谢您的评论。
标签: java open-closed-principle