Java學習筆記_180704_類繼承
阿新 • • 發佈:2018-07-04
lin etl java學習筆記 borde 封裝 super() body ron volume
面向對象三大特性:封裝、繼承、多態
1.方法重寫
方法重寫(Override)區別於方法重載(Overloading):
>方法重寫是在子類中對父類方法進行方法體的重寫,要求重寫後返回值形參與父類一致,要求同名同參
>方法重載是指在類內部對方法的形參進行改寫,要求同名異參
public class SuperClass{ public string m(string str){ return "super"+str; } } public class SonClass extends SuperClass{ @Override public string m(string str){ return "son"+str; } }
2.訪問權限修飾符
權限修飾符主要針對成員變量和成員方法
修飾符 | 類內部 | 同一包 | 子類 | 任何地方 |
private | Yes | |||
default | Yes | Yes | ||
protected | Yes | Yes | Yes | Yes |
public | Yes | Yes | Yes | Yes |
class的權限修飾可以用public和default
3.關鍵字super
super與this類似,主要用在構造器和重寫的方法內如下代碼所示:
public class Circle { private double radius; public Circle(){ radius=1.0; } public void setRadius(double radius){ this.radius = radius; } public double getRadius(){ return radius; } public double findArea(){ return Math.PI*Math.pow(radius, 2); } } public class Cylinder extends Circle{ private double length; public Cylinder(){ super(); length=1.0; } public void setLength(double length) { this.length = length; } public double getLength() { return length; } public double findVolume(){ return length*super.findArea(); } }
最好在父類中構造無參構造器,否則編譯器可能會報錯,提示沒有可繼承的構造器(Constructors)
Java學習筆記_180704_類繼承