java类的构造函数的参数为接口类型,如何传值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java类的构造函数的参数为接口类型,如何传值?相关的知识,希望对你有一定的参考价值。

一个类ClassA实现了接口InterfaceB,而ClassA的构造函数的参数为InterfaceB类型,new类ClassA的对象时如何传参?

传入的参数可以是实现了Interface B的类~~~
例如~Class C implements B~
那么 new A(new C());是可以的~
参考技术A 新建一个类实现interfaceTest接口
public class ClassTest1 implements InterfaceTest
省略

public static void main(String[] args)
InterfaceTest IT = new ClassTest1 ();
ClassTest ct = new ClassTest(it);//?用什么代替(本类实现的接口)
参考技术B InterfaceTest IT = new ClassTest1 ();
添 IT 就ok了
对于没有业务逻辑的测试类
只要符合 InterfaceTest 接口的实现类的实例对象均可。
参考技术C InterfaceB b = null;
ClassA a = new ClassA(b);
参考技术D Class A a=new ClassB(a);

Java中的方法覆盖(Overriding)和方法重载(Overloading)是啥意思?

覆盖是override方法重写 重载是overload
按照教科书上的定义,重载就是具有相同函数名,返回类型可以不同,参数个数、顺序、类型不同的函数。我的理解是重载是发生在两个或者是更多的函数具有相同的名字的情况下。
重写就是覆盖父类的方法,和父类有相同返回类型,参数,甚至是抛出的异常,重写方法不能为private,运用中最典型的就是对接口方法的覆盖。
参考技术A Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。

以上是关于java类的构造函数的参数为接口类型,如何传值?的主要内容,如果未能解决你的问题,请参考以下文章

C#中子类构造函数中如何调用父类构造函数

Java构造方法与析构方法

Java构造方法与析构方法实例剖析

派生类的构造函数学习之调用顺序

如何处理构造函数的失败?

关于类继承的构造与析构调用分析