如何创建抽象类和接口的对象
2022-09-02 23:13:24
如何创建抽象类和接口的对象?我知道我们不能直接实例化抽象类的对象。
你不能实例化一个抽象类或一个接口 - 你可以实例化它们的子类/实现者之一。
这样的事情的例子在Java集合的使用中是典型的。
List<String> stringList = new ArrayList<String>();
您使用的是接口类型作为类型,但实例本身是 .List<T>
ArrayList<T>
要创建抽象类的对象,只需使用new,就像创建其他非抽象类的对象一样,只有一个很小的差异,如下所示:
package com.my.test;
public abstract class MyAbstractClass {
private String name;
public MyAbstractClass(String name)
{
this.name = name;
}
public String getName(){
return this.name;
}
}
package com.my.test;
public class MyTestClass {
public static void main(String [] args)
{
MyAbstractClass ABC = new MyAbstractClass("name") {
};
System.out.println(ABC.getName());
}
}
以同样的方式,您可以创建接口类型的对象,如下所示:
package com.my.test;
public interface MyInterface {
void doSome();
public abstract void go();
}
package com.my.test;
public class MyTestClass {
public static void main(String [] args)
{
MyInterface myInterface = new MyInterface() {
@Override
public void go() {
System.out.println("Go ...");
}
@Override
public void doSome() {
System.out.println("Do ...");
}
};
myInterface.doSome();
myInterface.go();
}
}