Java語言中的----抽象類、接口

day12  Java語言中的抽象類與接口

一、抽象類和接口概述;

    在昨天我們學習了Java的繼承功能,這個是一個核心知識點,今天我們再繼承的基礎之上學習一下抽象類和接口這兩個知識。什麼是抽象類?如何定義一個抽象類?如何使用一個抽象類?這些都是我們需要掌握的。

    同時我們還要知道如何來定義一個接口,在開發中定義接口來實現相關的功能是一個很重要的功能。如何來實現接口中的抽象方法,這些在這一節都會說到。


二、抽象類和接口

    1、抽象類:

        什麼是抽象類?包含抽象方法的類就叫做抽象類 。使用abstract關鍵字修飾的類。

        抽象類的意義?抽象類存在意義就是被繼承,是定義的一個模板、由子類實現它的抽象方法。

        抽象類可以包含成員變量、方法、構造器、初始化塊內部類等。

        注意:同時抽象類是不能夠被實例化的。

             如果是使用的final關鍵字不能夠和abstract關鍵字同時出現。

   final關鍵字修飾的類不能夠被繼承,final關鍵字修飾的方法不能夠被重寫,final關鍵字不能和abstract關鍵字同時使用。

    2、抽象方法:

        抽象方法就是在一個類裏面使用abstract關鍵字修飾的方法就稱爲是抽象方法。

        注意:抽象方法是沒有方法體的,需要子類繼承實現這個抽象方法。


    3、實例一:

    package www.com.c3;

//抽象類abstract class
//定義動物類
    abstract class  Animal{
	
	String color;
	int leg;
	
	//抽象方法,沒有具體的方法體來實現它
	public abstract void eat();
	
    }

//方法一、將繼承的子類也定義爲一個抽象類。
//方法二、在普通子類繼承父類以後,子類裏面實現父類中的具體的抽象方法。
    class Dog extends Animal{
	//這就是實現父類中的抽象方法。我們需要實現它
	@Override
	public void eat() {
		System.out.println("狗是要吃食物的!");
	}
	
    }
//主類
    public class abstract01 {

	public static void main(String[] args) {
	
		Dog dog = new Dog();
		dog.eat();
		
	}
    }

    4、接口(interface):

    接口是個什麼東西?感覺好陌生一樣,實則不然,你想一想,做開發我們分爲前端開發和後臺開發兩個主體,兩個主題之間就是通過一些接口實現產品的功能。前端或後臺定義好一個接口以後你就可以直接通過接口實現功能。這樣節省了大量的研發時間。所以說,接口是一個好東西。

    5、接口:就是一個完全抽象出來的類。二這個類裏面定義的全部是抽象方法,都是public abstract關鍵字開頭的。

    6、在接口中也可以定義一些變量,但是這些變量全部都要初始化以後才能夠使用。而且全部都是“public satatic final”關鍵字修飾開頭的

    7、在接口中是不能夠含有“構造函數”的。

    8、實例二

    package www.com.c3;

//定義接口:
    interface Studets{
	
	//定義變量,並初始化
		String name = "zs";
	//定義方法
	public abstract void student();
	
    }
//注意:類和類之間:是繼承關係,
    // 類和接口之間:是實現關係。通過implements關鍵字實現。
	//同時需要實現接口中的抽象方法。
//子類實現父類中的抽象方法
    class Am implements Studets{

	@Override
	public void student() {
		System.out.println("姓名:"+name);
	}	
    }
//主類
    public class Interface01 {
	public static void main(String[] args) {
		//接口是不能夠被實例化的
			//Studets st = new Studets();
		
			Am a = new Am();
			a.student();
	    }
       }


三、接口與抽象類在用法上的區別:

    1、接口裏面只能包含抽象方法、靜態方法和默認方法,不能夠爲普通方法提供方法實現;

       抽象類裏面完全可以包含普通方法。

    2、接口裏面只能定義靜態常量,不能定義普通成員變量;

       抽象類裏面既可以定義普通成員變量,也可以定義靜態常量。

    3、接口裏面不包含構造器;

       抽象類裏面可以包含構造器,在抽象類裏面的構造器並不是用於創建對象,而是讓其子類調用這些構造器來完成屬於抽象類的初始化操作。

    4、接口裏面不能包括初始化塊;

       抽象類則完全可以包含初始化塊。

    5、一個類最多只能有一個直接父類,包括抽象類;

        但是一個類可以直接實現多個接口,通過獅子按多個解救可以彌補Java單繼承的不足之處。


四、結束語:

    到這裏我們就搗鼓完了,沒有關係,如果不懂我後續看看有視頻資源分享一點給大家。

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