Android開發(fā)_抽象類、接口

學習收獲

不知不覺野舶,Java學習已經(jīng)倆個多星期了易迹。收獲有,但覺得不大平道,這幾天學習的都說一些Java的知識睹欲,有理解的,也有懵比的一屋,當然窘疮,懵比的時候比較多,這時候就只能聽東哥代碼跟著寫罷了冀墨,很煩罢⑸馈!不懂的的方還是不懂诽嘉,這雞兒難受蔚出。我們也太難了!牢騷到此含懊,該說說今天的學習內(nèi)容:Java接口還有抽象類實戰(zhàn)

學習概況:

  • Java接口概念以及使用

  • 抽象類學習以及實戰(zhàn)

  • 編寫視圖按鈕窗口

過程

接口

  • 1.接口概念

interface 接口名{
// 靜態(tài)常量,抽象方法
}
用于對象之間的通信

  • 2.接口的特點

(1)接口中只能放靜態(tài)常量身冬、抽象方法。

(2)java接口是對功能的擴展(父類和抽象類中一般都存放的是通用的屬性和方法岔乔,我們一般把擴展的功能或特有的功能放到接口里酥筝,而不放在父類或抽象類中)。

(3)通過實現(xiàn)接口雏门,java類可以實現(xiàn)多實現(xiàn)(一個類可以實現(xiàn)多個接口嘿歌,即一個類可以有多種功能)。
(4)一個類只能繼承一個父類茁影,即extends關(guān)鍵字后面只能跟一個父類宙帝,但可以通過implements關(guān)鍵字實現(xiàn),多個接口募闲。

(5)接口與接口之間可以通過extends關(guān)鍵字來產(chǎn)生繼承關(guān)系(即接口繼承接口使用關(guān)鍵字extends)步脓。

  • 3.接口與抽象類的區(qū)別

(1)抽象類與實現(xiàn)類之間是一種繼承關(guān)系,也就是說如果采用抽象類的方式,則父類與子類在概念上應(yīng)該是相同的靴患。

(2)接口和實現(xiàn)類在概念上不要求相同仍侥,接口只是抽取相互之間沒有關(guān)系的類的共同特征,而不去關(guān)注類之間的關(guān)系鸳君,它可以使沒有層次關(guān)系的類具有相同的行為农渊。

(3)抽象類是對一組具有相同屬性和行為的邏輯上有關(guān)系的事物的一種抽象,而接口是對一組具有相同屬性和行為的邏輯上不相關(guān)的事物的一種抽象或颊。

(4)對于接口和抽象類的選擇砸紊,反映出設(shè)計人員看待問題的不同角度。抽象類用于一組相關(guān)的事物囱挑,表示的是"is-a"(繼承)的關(guān)系醉顽,而接口用于一組不相關(guān)的事物,表示的是"like-a"(具備)的關(guān)系平挑。

抽象類

昨天關(guān)于抽象類學習已經(jīng)差不多了徽鼎。
當你確定需要一個對象或者方法,但不清楚什么時候用到弹惦,但它確實是需要的,我們就可以定義抽象類完成悄但。抽象類不能創(chuàng)建實例棠隐,它只能作為父類被繼承。抽象類是從多個具體類中抽象出來的父類檐嚣,它具有更高層次的抽象助泽。從多個具有相同特征的類中抽象出一個抽象類,以這個抽象類作為其子類的模板嚎京,從而避免了子類的隨意性嗡贺。

  1. 抽象方法只作聲明,而不包含實現(xiàn)鞍帝,可以看成是沒有實現(xiàn)體的虛方法诫睬,抽象類的方法只能在子類中完成
  2. 抽象類不能被實例化
  3. 抽象類可以但不是必須有抽象屬性和抽象方法,但是一旦有了抽象方法帕涌,就一定要把這個類聲明為抽象類

實戰(zhàn)

今天御用抽象類和接口完成了一個界面摄凡。具體如下

  • 定義view類

/**
 * 管理視圖顯示事件監(jiān)聽
 * 什么情況下需要將一個父類做出成模板
 * 1.不能直接創(chuàng)建這個類的對象、
 * 2.這個類里面的某些方法 還不確定如何實現(xiàn)
 */
public class view {

    //所有的視圖都共有屬性
    String backgroundcolor;//背景色
    String bordcolor;//邊框色
    //記錄艦艇這個事件
    //展示不確定誰要監(jiān)聽
    //但是要監(jiān)聽世間的人肯定實現(xiàn)了這個接口
    OnclickListener Listener;


    //所有的視圖都要監(jiān)聽事件
    //定義一個內(nèi)部接口  封裝
    public interface OnclickListener{
        //定義一套規(guī)范 約束外部使用這些額方法來監(jiān)聽事件
         void onClick(view v);
    }
    //模擬控件接收出沒時間
    public void getTouchuEvent(){
        //調(diào)用監(jiān)聽這里面的Onclick方法
    System.out.println("被點擊了");
    }
}
  • 定義Butten類

/**
 * 創(chuàng)建一個按鈕類
 */
public class Butten extends  view{
   String title;
   String titlecolor;
    public Butten(String title,String titlecolor){
        this.title=title;
        this.titlecolor=titlecolor;
    }

}
  • 定義一個ImageView類

/**
 * 顯示一張圖片
 */
public class ImageView extends  view{
    String picture;
    public ImageView(String picture){
        this.picture=picture;
    }

}
  • 定義Activity類


/**
 * 管理界面的抽象類蚓曼,頂貼以一個界面創(chuàng)建到結(jié)束的模板
 */
public  abstract class Activity {
    //保存這個界面的所有指示圖
    public ArrayList<view> childs=new ArrayList<>();

    //界面創(chuàng)建
    public abstract void onCreate();
    //界面銷毀
    public abstract void onDestory();
    //將子控件添加到當前界面上
    //接收的時候是用父類區(qū)接收子類
    //當需要訪問子類內(nèi)容是  就要羌之戰(zhàn)換韋對應(yīng)的類
    public void addChild(view v){
        if(v instanceof Butten){
            Butten btn=(Butten)v;
        System.out.println(btn.title+"按鈕被添加到到界面上了");
        }
        if(v instanceof ImageView){
            ImageView iv=(ImageView)v;
            System.out.println(iv.picture+"的圖片顯示的圖片");
        }
        //保存子控件
        childs.add(v);
    }
}
  • 最后是MainActivity類的代碼


/**
 * 主界面
 */
public class MainActivity extends Activity{
    Butten btn;
    ImageView img;

    //構(gòu)造方法
    public MainActivity(){
        //當界面被船艦亲澡,立即調(diào)用onCreate方法
        onCreate();
    }
    @Override
    public void onCreate(){
        //主界面如何布局
        //添加一個按鈕
        Butten btn=new Butten("分享","紅色");
        //添加一張圖片
        ImageView img=new ImageView("周杰倫");

        //將創(chuàng)建的控件添加到當前界面
        addChild(btn);
        addChild(img);

        //1.
        //如果一個按鈕需要監(jiān)聽事件  bane必須實現(xiàn)監(jiān)聽事件的接口
        //高數(shù)按鈕誰在監(jiān)聽這個事件
        btn.Listener;
         //2.
        //
        img.Listener=new view.OnclickListener() {
            @Override
            public void onClick(view v) {
                System.out.println("圖片被點擊了");
            }
        };
    }
    //模擬觸摸
    public void touch(){
        //將屏幕被觸摸的事件傳遞給按鈕
        btn.getTouchuEvent();
        img.getTouchuEvent();
    }
    @Override
    public void onDestory(){

    }

    public void onClick(view v){
        System.out.println("按鈕點擊了");
    }
}

結(jié)語

后面都好難啊,好多都是不太清楚的纫版。先學一步是一步吧床绪。到后面用多了就會明白吧

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子癞己,更是在濱河造成了極大的恐慌膀斋,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件末秃,死亡現(xiàn)場離奇詭異概页,居然都是意外死亡,警方通過查閱死者的電腦和手機练慕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門惰匙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铃将,你說我怎么就攤上這事项鬼。” “怎么了劲阎?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵绘盟,是天一觀的道長。 經(jīng)常有香客問我悯仙,道長龄毡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任锡垄,我火速辦了婚禮沦零,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘货岭。我一直安慰自己路操,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布千贯。 她就那樣靜靜地躺著屯仗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搔谴。 梳的紋絲不亂的頭發(fā)上魁袜,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音敦第,去河邊找鬼慌核。 笑死,一個胖子當著我的面吹牛申尼,可吹牛的內(nèi)容都是我干的垮卓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼师幕,長吁一口氣:“原來是場噩夢啊……” “哼粟按!你這毒婦竟也來了诬滩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤灭将,失蹤者是張志新(化名)和其女友劉穎疼鸟,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庙曙,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡空镜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了捌朴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吴攒。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖砂蔽,靈堂內(nèi)的尸體忽然破棺而出洼怔,到底是詐尸還是另有隱情,我是刑警寧澤左驾,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布镣隶,位于F島的核電站,受9級特大地震影響诡右,放射性物質(zhì)發(fā)生泄漏安岂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一帆吻、第九天 我趴在偏房一處隱蔽的房頂上張望嗜闻。 院中可真熱鬧,春花似錦桅锄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至檐束,卻和暖如春辫秧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背被丧。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工盟戏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人甥桂。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓柿究,卻偏偏與公主長得像,于是被迫代替她去往敵國和親黄选。 傳聞我的和親對象是個殘疾皇子蝇摸,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容