java中super可以重新父类么_Java Super 覆盖方法
子類從父類中繼承方法,有時候,子類需要修改父類中定義的方法的實現,這稱作方法覆蓋。
比如,GeometricObject類中的toString方法返回表示集合對象的字符串,這個方法就可以被覆蓋,返回表示圓的字符串。
1 publicString toString(){
2 return super.toString()+"\nradius is "+radius;
3 }
要在Circle類中調用定義在GeometricObject中的toString方法,使用super.toString()。
需要注意的是:
1、僅當實例方法是可訪問時,它才能被覆蓋。因為私有方法不能在它的類之外被訪問。如果子類中定義的方法在父類中是私有的,那么這兩個類完全沒有關系。
2、靜態方法能被繼承,但是不能被覆蓋。如果父類中定義的靜態方法在子類中被重新定義,那么定義在父類中的靜態方法將被隱藏,使用 父類名.靜態方法名 調用隱藏的靜態方法。
另外,說一下Object類中equals的方法的默認實現和覆蓋方法:
1 public booleanequals(Object obj){2 return (this==obj);3 }
這個方法使用==運算符檢測兩個引用變量是否指向同一個對象,因此,應該在自己的客戶類中覆蓋這個方法,以測試兩個不同的對象是否具有相同的內容。比如基于元的半徑比較兩個圓是否相等,如下所示:
1 public booleanequals(Object obj){2 if(obj instanceofCircle){3 return radius==((Circle)obj).radius;4 }5 else
6 return false;7 }
這時,需要注意的是,覆蓋equals方法時,必須使用equals(Object obj)。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java中super可以重新父类么_Java Super 覆盖方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言笔记(符号)
- 下一篇: Java刷漆问题代码_Java实现蓝桥杯