我经常看到人们说某些软件"非常自以为是",或者微软倾向于编写"无意见"的框架.这究竟意味着什么?
我是Java的新手,我已经阅读了一些有关重写方法的教程,但我看到的一个例子并不像我期望的那样工作.例如,我有代码:
public class A{
public void show(){
System.out.println("A");
}
public void run(){
show();
}
public static void main( String[] arg ) {
new A().run();
}
}
Run Code Online (Sandbox Code Playgroud)
public class B extends A{
@Override
public void show(){
System.out.println("B");
}
}
Run Code Online (Sandbox Code Playgroud)
当我实例化并调用B.run()时,我希望看到"B"输出.但是,我看到了"A".我究竟做错了什么?
编辑:是的,这些类分为两个单独的文件.他们为了简洁而一起展示.
编辑:我不确定B是如何被实例化的,因为它是由使用类加载器的第三方程序完成的.
编辑:有关第三方程序的更多信息.它首先调用A.main(),我最初没有显示(抱歉).我假设我需要制作"new A().run();" 更通用的使用当前类的名称.那可能吗?
我正在学习Java,我注意到它main()被放在一个类中.为什么?我不认为我main()是任何对象的成员.所以请告诉我如何解决这个问题.