我有一个界面
public interface I{
Status getStatus();
}
然后我有一个实现该接口的抽象类
public abstract class C implements I{
public Status getStatus() {
return status;
}
}
我想从另一个类访问getstatus()方法,我试过了
C status = new C();
但是我收到错误“无法实例化类型C”
任何帮助都将受到高度赞赏.. !! 感谢名单。
答案 0 :(得分:4)
您无法为抽象类创建对象 编写一个扩展抽象类的具体类,并使用该类对象来调用方法
class test extends c{
..........
}
c obj1= new test();
obj1.getStatus();
答案 1 :(得分:4)
根据docs
A class type should be declared abstract only if the intent is that subclasses
can be created to complete the implementation. If the intent is simply to prevent
instantiation of a class, the proper way to express this is to declare a
constructor of no arguments, make it private, never invoke it, and declare no
other constructors.
抽象类可以没有抽象方法,但它必须具有有效的用例(比如从子类调用super)。您无法实例化(创建抽象类的对象)。
请删除abstract关键字或创建另一个扩展抽象类的类。
Ans只是为了记录抽象类实现接口时你不需要在抽象类中实现接口方法(尽管你的设计可以这样说)。但是如果你没有在实现它的抽象类中实现接口方法,你需要在抽象类的第一个具体子类中实现它。此外,如果您在抽象类中实现接口方法,则无需在抽象类的具体子类中再次实现它们。你总是可以覆盖它。
答案 2 :(得分:2)
答案 3 :(得分:2)
您无法实例化抽象类
答案 4 :(得分:0)
如果您真的在类C中抽象了方法,那么我建议您仅使用常规类。您仍然可以扩展该调用。