绝对正确的问题。
这里接口和抽象类都有相同的方法。
您有一个类名为 hello 并扩展了抽象类并实现了接口,它是 true 并且您在 hello 类上覆盖了 meth1 方法,它很好,并且可以正确编译并且没有给出任何错误,但是您无法确定哪个类方法像抽象类一样被覆盖或界面。
这是运行时多态性,您不能创建抽象类和接口的对象,但可以创建其引用变量。这里的解决方案是您无法在编译时识别它在运行时的实际覆盖。
interface hi
{
public void meth1();
}
abstract class Hullo
{
public abstract void meth1();
}
public class Hello extends Hullo implements hi
{
public void meth1(){
System.out.println("hello");
}
hi h= new Hello();
h.meth1();//its means interface method is override. and its decide when we call method.
hullo hu= new Hello();
hu.meth1();//its means abstract class method is override.
}