网站怎么被黑,wordpress 淘宝客 主题,附近广告制作店,wordpress免费字体结论#xff1a;java中静态属性和静态方法可以被继承#xff0c;但是没有被重写(overwrite)而是被隐藏. 原因#xff1a; 1). 静态方法和属性是属于类的#xff0c;调用的时候直接通过类名.方法名完成对#xff0c;不需要继承机制及可以调用。如果子类里面定义了静态方法…
结论java中静态属性和静态方法可以被继承但是没有被重写(overwrite)而是被隐藏. 原因 1). 静态方法和属性是属于类的调用的时候直接通过类名.方法名完成对不需要继承机制及可以调用。如果子类里面定义了静态方法和属性那么这时候父类的静态方法或属性称之为隐藏。如果你想要调用父类的静态方法和属性直接通过父类名.方法或变量名完成至于是否继承一说子类是有继承静态方法和属性但是跟实例方法和属性不太一样存在隐藏的这种情况。 2). 多态之所以能够实现依赖于继承、接口和重写、重载继承和重写最为关键。有了继承和重写就可以实现父类的引用指向不同子类的对象。重写的功能是重写后子类的优先级要高于父类的优先级但是“隐藏”是没有这个优先级之分的。 3). 静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写因此不能实现多态不能实现父类的引用可以指向不同子类的对象。非静态方法可以被继承和重写因此可以实现多态。
package com.wyy.test;public class StaticMethodTest {public static void main(String[] args){Parent p new Parent();Parent son new Son();p.getName();son.getName();p.getDesc();son.getDesc();}
}
class Parent{public static String name ;public String desc;public static void getName(){name father;System.out.println(name);}public void getDesc(){desc fathers Desc;System.out.println(desc);}
}class Son extends Parent{public static void getName(){name son;System.out.println(name);}public void getDesc(){desc sons Desc;System.out.println(desc);}
}
原文章地址https://www.cnblogs.com/yaoboyyao/p/3601900.html