问题描述
- Java调用一个不存在的方法
- 请各位大神帮我解释一个问题,先看代码,谢谢!
abstract class Base{ abstract public void myfunc(); public void another(){ System.out.println(""Another method""); } } public class Abs extends Base{ public static void main(String[] args){ Abs a=new Abs(); a.amethod(); } public void myfunc(){System.out.println(""My Func"");}
试卷上的一道题目,结果是可以编译和运行,输出的结果是“My Func”
我的疑问是上面的程序当中并没有出现amethod为什么可以调用它
解决方案
只能说抽象类的父类中有这个方法,是继承过来的,否则是无法编译和运行的。
解决方案二:
你这个Abs继承了Base后并实现了Base里的抽象方法。
但是Base里并没有amethod方法。
而你在Abs里有个程序的执行入口Main方法而你在这个Main方法里实现的对象是这个类的本身并且调用了这个类本身的一个
方法amethod。如果程序可以执行那么也就是说当执行到这个方法时在这个本类里可以自动创建一个这个默认的方法吧。
但是这个方法是没有意义的因为它没有做任何的事情的。你研究明白了用处可能也不大的。
时间: 2024-11-03 22:01:06