moh*_*abu 5 java oop abstract-class interface
我试图理解如果抽象类和接口中都存在方法会发生什么.下面,我发布了一个场景,让你清楚地了解我所指的是什么.
interface act
{
void read();
}
abstract class enact
{
void read() {
System.out.println("hello");
}
}
public class second extends enact implements act
{
public void read() {
// does method read() correspond to Interface or abstract class?
}
}
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,编写此代码时没有编译错误.任何建议都会非常有帮助.
我只是想知道方法 read() 是否与接口或抽象类相关
或者两者都不是,真的。这取决于您实际使用它的上下文中的明显类型。例如,无论你是否这样做
enact example = new second();
Run Code Online (Sandbox Code Playgroud)
或者
act example = new second();
Run Code Online (Sandbox Code Playgroud)
两者都允许您编译代码:
example.read();
Run Code Online (Sandbox Code Playgroud)
因为 read() 方法是在 act 和 enact 两种表观类型中定义的。但在这两种情况下,真正重要的是“第二”类中定义的 read() 定义。这就是被执行的。