JAVA學習筆記15——抽象類+接口

最近在看JAVA教學的視頻,覺得老師講的很好,同時借用源代碼還有筆記來撰寫本系列博客,記錄自己的學習內容,同時也供看到的人學習。

本篇講抽象類(abstract)和接口(interface)的主要內容。

首先來說一說抽象方法,抽象方法是一種只有聲明但是沒有方法體的方法,其意義爲將方法的設計與實現分離。而抽象類之所以叫做抽象類就是因爲有了抽象方法:


接下來看一看相關代碼,關於一些細節方面的提醒均在代碼中體現:

public abstract class Animal {
		String ss;//抽象類裏面可以有正常的屬性
		public abstract void run();   //定義抽象方法的格式
		public  void breath(){   //抽象類裏面可以有正常的方法
			System.out.println();
			run();  //多態,如果調用指定是子類new出來的對象來調用的(抽象類不能new一個對象),所以這裏調用的是子類的方法,不是父類的抽象方法,解釋見上一篇筆記
		}
}

class Cat extends Animal{
	@Override   //註解,JDK5.0之後加入的,要求下面的方法必須是run的重寫
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("Cat run!");
	}	
}
public class Test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			Animal  a = new Cat();
	}
}
第二個內容就是介紹接口:

接口是比抽象類更抽象的類,裏面只有常量(注意:沒有變量)和抽象方法。接口的常量定義的時候屬性永遠是public static final。未實現的方法只能是public abstract。這兩個默認屬性都是可以省略的不用寫出來的。接口優勢在於一個類可以實現多個接口、一個接口可以繼承多個接口。



示例代碼:

public interface MyInterface {
		String MAX_VALUE = "10000000";
		int max_speed = 120;
		
		public void test01();
		public int test02(int a,int b);
}
public class MyClass implements MyInterface {
   //要想實現接口必須實現其所有的所有的抽象方法。
	int v;
	@Override
	public void test01() {
		// TODO Auto-generated method stub
		System.out.println("01");
	}
	@Override
	public int test02(int a, int b) {
		// TODO Auto-generated method stub
		System.out.println("02!");
		return 0;
	}
}
public class Test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyInterface a = new MyClass();
		//a.v;回報錯,接口不能跑到實現它的類裏面去調用該類的成員變量.
		a.test01();//輸出“01”
	}
}








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章