定義:用於構造物件物件的一種行為
格式: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 然...