一个java源文件中可以定义多个类,但最多只能有一个类用public修饰,也可以都不用public修饰。当有一个类被public修饰时,那么java源文件名必须和这个公共类类名一致(包括大小写);如果没有类被public修饰,那么源文件名可以随便起。因为你的A类是public修饰的类,所以如果你的源文件名不是A.java的话,编译无法通过。B b = new B( );创建了一个B类对象new B( ),内存地址赋给引用b。A a = b;是将b中存储的对象newB()的地址值赋给引用a,a指向了newB(),内存中始终只存在一个对象newB(),所以,b.fun1();a.fun1();调用的都是newB()的方法,调用fun1()方法时执行的fun2()是复写了A类的fun2()。结果两次都是999 |