静态(static)⽅法重写(override)
做新时代的好少年
年初工作会议讲话⽗类的普通⽅法可以被继承和重写,不多作解释,如果⼦类继承⽗类,⽽且⼦类没有重写⽗类的⽅法,但是⼦类会有从⽗类继承过来的⽅法。
静态的⽅法可以被继承,但是不能重写。如果⽗类中有⼀个静态的⽅法,⼦类也有⼀个与其⽅法名,参数类型,参数个数都⼀样的⽅法,并且也有static关键字修饰,那么该⼦类的⽅法会把原来继承过来的⽗类的⽅法隐藏,⽽不是重写。通俗的讲就是⽗类的⽅法和⼦类的⽅法是两个没有关系的⽅法,具体调⽤哪⼀个⽅法是看是哪个对象的引⽤;这种⽗⼦类⽅法也不在存在多态的性质。《Java编程思想》中这样提到“只有普通的⽅法调⽤可以是多态的”。下⾯代码为例:
public class StaticTest
{
public static void main(String[] args)
{
M m = new N();
m.output();
}滕红
}
云边的小卖部class M
{
什么是建仓public static void output()
执行力心得体会{
System.out.println("M");
}
}
泪水作文400字class N extends M
{
public static void output()
{
System.out.println("N");
}
彩虹照片
}
上⾯执⾏的结果是“M”,也就是是M类型的引⽤调⽤的,如果修改main⽅法中的代码:
N n = new N();
n.output();
那么执⾏的结果是“N”,也就是N类型的引⽤调⽤的。
静态的⽅法不能覆写,也不能被重写。总之,静态的没有重写