java重写、重载、隐藏、遮蔽、遮掩
重写:子类重写父类方法
重载:方法名相同,参数列表不同,与返回值无关
隐藏:与重写对应,父类的方法是static的,子类虽然方法名相同,参数列表相同,但是不能重写(final也不能)
class Swan { public static void fly() { System.out.println("swan can fly ..."); } } class UglyDuck extends Swan { public static void fly() { System.out.println("ugly duck can't fly ..."); } } public class TestFly { public static void main(String [] args) { Swan swan = new Swan(); Swan uglyDuck = new UglyDuck(); swan.fly(); uglyDuck.fly(); } }
输出都是
swan can fly
遮蔽:变量名屏蔽变量名,发生在不同的作用域,窄作用域的变量名屏蔽了大作用域的变量名(方法名,类名同理)
遮掩:变量名遮掩类名
public class TestFly { // 如此变量名 static String System = "system"; public static void main(String [] args) { // String System = "hao"; // 编译不通过 // System.out.println("No"); // 编译通过 java.lang.System.out.println("OK"); } }

浙公网安备 33010602011771号