运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

Java接口类型作为构造函数参数

运维开发网 https://www.qedev.com 2020-04-03 20:37 出处:网络 作者:运维开发网整理
嗨 我正在学习 Java接口.我在 Java教程中读到一个接口是一个引用类型.假设我声明了一个界面 public interface INT { public void dosomething(); } 我有3个班,A {},B {}和C {}. class A{} implements INT. class B{} extends A{} and implements IN

我正在学习 Java接口.我在 Java教程中读到一个接口是一个引用类型.假设我声明了一个界面

public interface INT {       public void dosomething();     }

我有3个班,A {},B {}和C {}.

class A{} implements INT. 
class B{} extends A{} and implements INT. 
class C{} implement INT.

然后我有另一个具有构造函数的类D {}

public class D{
  private INT a,b,c ;
  public D( INT a1, INT b1 , INT c1)  {
      a = a1; 
      b = b1;
      c = c1;
  }
  ....
}

然后在main()中,我实例化一个D对象

D myobject = new D( new A(), new B(), new C() );

据说,类层次结构不相关的对象可以用于使用接口相互交互.所以在上面的类中,C类和A类没有关联,现在界面允许它们相互“交谈”?我理解这是对的吗?还有什么其他优点来声明构造函数是接口类型而不是实际的类类型,而不是

private A a, B b, C c ;
public D( A a1, B b1 , C c1) {
   a=a1; b=b1;c=c1;
}

这与多态性有关吗?对不起,这是我在OO的第一次尝试,所以我在这里缺乏一些了解.

在方法(或构造函数)参数中使用接口类型的巨大优势是其他程序员可以调用它并传入自己的实现接口的类.编写方法/构造函数时,您不了解的类以及哪些类甚至不存在.如果使用具体类,调用者必须使用这些类,子类化或更改代码,所有这些都比实现接口更多地限制它们.

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消