日期:2014-05-20 浏览次数:21067 次
package world;
class a {
public void method(){
System.out.println("hello world");
}
public void good(){
System.out.println("good");
}
}
class b extends a{ //子类的方法覆盖父类的方法
public void method(){
//super.method();
System.out.println("你好,世界");
}
}
public class A{
public static void main(String args[]){
b go = new b();
go.method();
go.good();
}
}
package world;
class a {
public void method(){
System.out.println("hello world");
}
public void good(){
System.out.println("good");
}
}
class b extends a{ //子类的方法覆盖父类的方法
public void method(){
//super.method();
System.out.println("你好,世界");
}
}
public class C{
public static void main(String args[]){
a aaA = new a();
b go = new b();
go.method();
go.good();
}
}
------解决方案--------------------
windows 操作系统 是无法区分文件名的大小写的
你可以在c:\ 下建一个文件A.class 但你再一次建一个文件a.class 时
它会提示“指定的文件名与现有的文件名重名,请指定另一个文件名”
所以当你在编译时是没办法同时生成A.class和a.class和b.class 除非将来有一天JVM的权限胜过windows操作系统
你可以使用内部类解决文件名冲突的问题 类似下面的写法 此时同时生成 A.class A$b.class A$a.class
package world;
public class A {
public static void main(String args[]) {
A c = new A();
a a = c.new a();
b go = c.new b();
go.method();
go.good();
}
class a {
public void method() {
System.out.println("hello world");
}
public void good() {
System.out.println("good");
}
}
class b extends a { // 子类的方法覆盖父类的方法
public void method() {
// super.method();
System.out.println("你好,世界");
}
}
}
------解决方案--------------------