三、隐藏(Hide)
(1)提到隐藏,就不得不提到一个关键字--static,static是静态的意思,具体用法意义,各位可以去查相关的资料。这里我想说的,static方法在继承中的特殊性!
(1)子类不能重写(Overriding)父类的静态方法,只能隐藏(Hiding)父类的静态方法。
(1)提到隐藏,就不得不提到一个关键字--static,static是静态的意思,具体用法意义,各位可以去查相关的资料。这里我想说的,static方法在继承中的特殊性!
(1)子类不能重写(Overriding)父类的静态方法,只能隐藏(Hiding)父类的静态方法。
(2)什么叫隐藏父类的静态方法呢?就是说父类的静态方法和子类的静态方法是同时存在的,具体调用的是哪个方法,是要看调用的方法的引用是什么类型的引用,如果是父类型的引用,调用的就是父类的静态方法,如果是子类型的引用,调用的就是子类的静态方法。【这里面有些多态(Polymorphism)的知识,不懂的可以问我哈!】具体区别我们可以看一个例子,这个例子来自官方文档。
public class Animal
{
public static void testClassMethod()
{
System.out.println("The class" + " method in Animal.");
}
public void testInstanceMethod()
{
System.out.println("The instance " + " method in Animal.");
}
}
The second class, a subclass of Animal, is called Cat:
public class Cat extends Animal
{
public static void testClassMethod()
{
System.out.println("The class method" + " in Cat.");
}
public void testInstanceMethod()
{
System.out.println("The instance method" + " in Cat.");
}
public static void main(String[] args)
{
Cat myCat = new Cat();
Animal myAnimal = myCat;
Animal.testClassMethod();
myAnimal.testInstanceMethod();
}
}
The output from this program is as follows:
The class method in Animal.The instance method in Cat.
官方对重写和隐藏的说明:点击打开链接