'Java 入門知識學習筆記(接口、繼承與多態)'

Java 科技小跟班 2019-08-17
"
"
Java 入門知識學習筆記(接口、繼承與多態)

一、接口的使用

1、接口的定義,基本語法格式如下:

[修飾符] interface 接口名 [extends 父接口名列表]{
[public][static][final] 變量;
[public][abstract] 方法;
}
/*
1、修飾符是可選參數,指定接口的訪問權限,可選值為public或省略默認
2、接口名是比選參數,必須是合法的Java標識符
3、extends 父接口名列表是可選參數,用於說明要定義的接口繼承於哪個父接口。
4、方法:接口定義的方法只有定義而沒有具體實現的代碼
2、接口名是比選參數,必須是合法的Java標識符
3、extends 父接口名列表是可選參數,用於說明要定義的接口繼承於哪個父接口。
4、方法:接口定義的方法只有定義而沒有具體實現的代碼
*/
public interface ICalculate{//接口名必須與接口文件名相同
final float PI=3.14159f; //定義圓周率常量
float getArea(float r); //定義計算面積方法(但不具體實現)
float getCircumference(float r);//定義計算周長方法(但不具體實現)
}


2、接口的實現

接口在定義後,可以在繼承該接口的類中實現,須用implements關鍵字表示繼承的接口。針對上例,一個具體類的實現代碼如下:

public class Cire implement ICaculate{

public float getArea(float r){

float area=PI*r*r;

return area;

}

public float getCircumference(float r){

float circumference=2*PI*r;

return circumference;

}

}


二、類的繼承

1、繼承的實現

[修飾符]class 子類名 extends 父類名{

...

}

//實例

public class Bird{

String color="白色";

String skin="羽毛";

}

public class Pigeon extends Bird{

public static void main(String[] args){

Pigeon pigeon=new Pigeon();

System.out.println(Pigeon.color);

}


2、當父類中的部分方法對子類不能滿足要求時,子類要對該同名方法進行重寫。

//實例 Bird.java 
public class Bird{
String color="白色";
String skin="羽毛";
public void cry(){
System.out.println("鳥鳴!");
}
}
//Pigeon.java
public class Pigeon extends Bird{
public void cry(){
System.out.println("鴿子叫!");
}
public static void main(String[] args){
Pigeon pigeon=new Pigeon();
pigeon.cry();
}
}


三、多態

類的多態性通常就是通過方法的重載(Overloading)和重寫(Overriding)來實現。重寫即為上面描述的子類中對父類同名方法的重寫。

重載是指在同一個類中出現多各方法名相同,但參數個數或參數類型不同的方法(前面講到構造方法時,無參構造方法和有參構造方法也是一種重載),在程序執行時,將根據調用參數的個數和類型自動匹配相適應的方法。

/*定義一個名為Calculate的類,在類中定義兩個getArea方法
*和兩個draw方法
*/
public class Calculate {
final float PI=3.14159f;
//計算圓面積
public float getArea(float r){
return PI*r*r;
}
//計算矩形面積
public float getArea(float length,float width){
return length*width;
}

//畫出num個任意形狀的圖形
public void draw(int num){
System.out.println("畫了"+num+"個圖形!");
}
//畫指定形狀的圖形
public void draw(String shape){
System.out.println("畫了一個"+shape+"!");
}
public static void main(String[] args){
Calculate pic=new Calculate();
float l=20f;
float w=15f;
float area1=pic.getArea(l,w);
System.out.println("矩形面積是"+area1);
float r=9.12f;
float area2=pic.getArea(r);
System.out.println("圓形面積是"+area2);
int num=7;
pic.draw(num);
pic.draw("不規則形狀");
}
}

我自己是一名從事了多年開發的java老程序員,辭職目前在做自己的java私人定製課程,今年年初我花了一個月整理了一份最適合2019年學習的java學習乾貨,從最基礎的javase到spring各種框架都有整理,送給每一位java小夥伴,想要獲取的可以關注我的頭條號並在後臺私信我:java,即可免費獲取。

"

相關推薦

推薦中...