java - 我无法执行虚拟方法调用

标签 java inheritance polymorphism

这是我的代码:

class base1
{

}
class der1 extends base1
{
 public static void main(String []args)
 {
  base1 b=new der1();
  b.showTest();
 }
 public void showTest()
 {
 System.out.println("Hello i am a derive class");
 }

}

最佳答案

它不会编译。

你还需要在基类中使用 showTest() 以使其可编译

base1 b=new der1(); b.showTest();

这里的bbase的引用,编译时需要base中的showTest()由于

,将检查 base 中的 showTest() 并在运行时检查

base1 b=new der1(); 它将调用 der1 版本的 showTest()

另见

关于java - 我无法执行虚拟方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4596103/

相关文章:

java - 线程池中线程的运行时异常完全消失: how to handle

java - Java 中的启动画面

sql - Ruby on Rails 最佳设计模式而不是单表继承?

java - 内部类变量的可见性

java - 动态(运行时)多态性在java中如何工作?换句话说,JVM 如何知道要调用哪些方法?

java - Jackson 中的序列化数组类型和数组

java - 减少负分数

javascript - 在对象实例化期间扩展 javascript 对象

c# - 为什么C#在多态中不考虑函数的返回类型?

c++ - 运算符重载和多态区别