日期:2014-05-20  浏览次数:20782 次

继承问题。。。问题还真是多吖。。郁闷
Java code

public class A {
    public void method()
    {
        
    }
}
class B extends A{
    public int method()
    {
        return 1;
    }
    private void method(int j)
    {
        
    }
}


为什么子类里面的两个method()方法会出错
我的意思是这个两个方法随便写一个在子类里面都会出错。
不是因为重命名的原因

------解决方案--------------------
探讨
Override? Or Overwrite?
java中有两个概念很容易搞混Override和Overwrite
1,Override在java中翻译成重写或者覆盖,
而不是熟知的重载!!!
Override就是子类function跟父类function完全一致(非peivate函数),包括函数名,参数和返回值。
经过Override后的function,在子类中不再起作用,通过子类调用该function,只能
是子类的该function;另外,子类中允许出现该函数的同名函数,但参数不能一样!
其实这样的函数才是…

------解决方案--------------------
你B是继承A,只要你B里有个跟A一样名字的方法并且参数也一样,java就认为你是override,但override要求方法跟父类的修饰符完全一样,第一个method有返回值所以出错,第二个method单独用不会出错,这个是Overwrite,应为你参数不同。