【发布时间】:2021-05-14 01:49:12
【问题描述】:
abstract class superclass {
public abstract void method();
}
class subclass extends superclass {
public void method() {
//do something
}
public void newMethod() {
//do something
}
}
public class mainclass {
public static void main(String[]args) {
superclass abc = new subclass();
abc.method();
abc.newMethod(); //cannot find symbol error
}
}
在上面的例子中,新方法可以不写在抽象类的派生类中吗?如果我这样做,会引发错误。
【问题讨论】:
-
您应该遵循 Java 命名约定。类名应以大写开头。
-
@maloomeister 这只是一个例子。我的主程序所有类名都以大写开头。
-
您将
abc定义为superclass类型。但是superclass没有定义newMethod。因此,要调用newMethod(),您需要事先将其转换为subclass。 ->((subclass) abc).newMethod();
标签: java oop inheritance methods abstract-class