难得沙发一回
问题1: 子类是不是抽象类关键看有没有abstract修饰,(这是个语法问题,人家java就这么规定的,你能怎样).有abstract修饰,就算一个抽象方法没有,那也是抽象类,不能创建对象.没abstract修饰的类如果没有完全复写抽象类中的抽象方法那么编译肯定会报错.所以你想的那种情况是不存在的.
问题2:貌似类不是调用方法,而是继承或者重写方法吧,调用是对象调用的.那么又回到问题1了,其实就是没把所有抽象方法重写的类必须是抽象类,妄图不加abstract来欺骗虚拟机的行为只会报错.所以问题2问的逻辑有点问题吧.(或者我水平菜,有更高端的解释)
最后问的.class的文件是我自己猜的.因为Student类是没问题的,而且加载顺序的话也应该是Student在前,所以才会有Student.class文件,而没有其它两个类的.class文件.
一个文件里面写几个类,编译的时候就会产生几个类的.class文件,并不是就一个的.
|