繼承介面的理解以及實現

2021-07-25 15:44:27 字數 2863 閱讀 3674

定義:用於構造物件物件的一種行為

格式:public 類名

(){}

什麼時候執行:建立當前類的物件的時候,自動執行

注意:1.除了介面類之外所有類都會有構造方法

2.構造方法有返回值,返回的是物件在記憶體中的位址

為了理解構造方法返回的是物件在記憶體中的位址,我敲了下面的**

teacher類,定義了name屬性和建構函式

package example01;

public class teacher }

測試類,我建立了3個物件t1,t2,t3;把t1位址傳給t3,再把t2位址傳給t1,觀察輸出的值

package example01;

public class test }

最終輸出結果是:

王五王五

張三

定義:同乙個類中,多個方法的方法名相同,引數列表不同(型別、順序、個數)的方法互為過載方法

分類:普通方法過載和構造方法過載

構造方法過載作用:可以初始化當前物件的一些屬性

注意:一旦你過載了構造方法後,則預設的那個沒有引數的構造方法就消失了

如果還需要用無參的構造方法,則需要顯性定義出來

這次我做了2個類,乙個play類和乙個測試類,在play類中我建立了建構函式,並過載了函式,然後在測試類中建立了物件,觀察輸出結果

play類

package example02;

public class play

public play(int a)

public play(string b)

} 測試類

package example02;

public class test }

輸出:帶數字的重構函式出擊

帶字串的重構函式出擊

建構函式出擊

我根據繼承

->

方法重寫和自動轉型—

>

多型性,決定把兩個放在乙個**中從而來體現出他們的相關性

繼承:package example04;

public class test

}定義:子類繼承父類的屬性和方法(構造方法不能繼承)

格式:public class 子類類名  

extends  

父類類名{}

注意:任何乙個類都是object類的子類

繼承只能是單繼承,不能是多繼承,但是可以多層繼承

方法重寫格式:子類重寫父類的方法,方法名、引數列表、返回型別必須都要一樣的

自動轉型格式:子類物件自動轉型為父類的型別

父類型別

物件名=  new  子類型別

();

注意:自動轉型後的物件,如果子類重寫了父類的方法,則執行的是重寫後的

多型:多個同乙個型別的物件,執行同乙個方法,過程不一樣就是多型性

**思想:我準備建立4個類,乙個父類,二個子類,其中乙個子類對父類的方法進行了重寫,乙個測試類,測試類中使用了自動轉型格式,由於乙個子類重寫了方法,導致雖然執行同乙個方法,但過程不一樣,體現出多型性。

父類:package example03;

public class father }

子類1:package example03;

public class child extends father

重寫了方法的子類2:

package example03;

public class son extends father}

測試類package example03;

public class test }

輸出結果:

小明最喜歡踢足球

小明最喜歡打籃球

方法分類:

構造方法:public 類名

(){}

普通方法:public 返回型別 方法名

(){}

抽象方法:public abstract 返回型別 方法名

();

普通類:public class 類名{}

1. 方法只能有普通方法和構造方法,一定不能有抽象方法

2. 可以構造物件

抽象類:public abstract class 類名{}

1. 三種方法都可以存在

2. 不能建立物件

介面:public inte***ce 類名{}

1.只能有抽象方法(可以省略掉中間的

abstract

修飾詞)

2.不能建立物件

抽象類和介面作用:用於當父類,被繼承,約束普通類的成員定義

繼承介面:public class 子類類名

implements

介面名{}

注意:介面可以多繼承

因為介面抽象類可以用作約束,這次我準備做三個類,乙個介面類boss,它約束了2個方法cleanwindows()和public abstract void cleandoors();子類worker類中繼承了方法,並在測試類中建立了物件。

boss類

package example04;

public inte***ce boss

子類worker類

package example04;

public class worker implements boss

public void cleandoors()

}測試類

package example04;

public class test

}輸出結果

員工擦了門

員工打掃了地

介面的繼承

一概念介紹 二介面繼承的應用 1 示例 inte ce inte cea inte ce inte ceb inte ce inte cec extends inte cea,inte ceb public class inte ceextendstest 2執行結果5 6 7 3結果分析 上面 中...

C 介面 介面的繼承

類之間可以繼承,和類一樣,介面也允許繼承。c 中介面可以多繼承,介面之間可以互相繼承和多繼承。普通類和抽象類可以繼承介面。乙個類可以同時繼承乙個類和多個介面,但是介面不能繼承類。假如你是一名在職學習的學生,你就具有雙重身份。乙個身份是學生,必須完成學習任務,另一身份是職員,必須完成工作任務。進一步說...

介面的理解

例如乙個entitymodel類擁有很多屬性資訊 name,age,height,weight。現在如果想使用其中的height和weight,可以定義乙個介面ibodyinfo package com.wjy.understandinte ce public inte ce ibodyinfo 然...