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");  
    }  
} 

 



posted @ 2020-12-28 15:47  三灶龙都88  阅读(768)  评论(0)    收藏  举报