1. 程式人生 > >Java學習筆記_180704_類繼承

Java學習筆記_180704_類繼承

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_類繼承