国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

詳解java基礎--抽象類、接口與多態

2019-11-14 21:54:21
字體:
來源:轉載
供稿:網友
詳解java基礎--抽象類、接口與多態

  抽象類、接口、多態都是面向對象中很基礎的東西,我相信看到能本篇博客的人本不會再糾結它的基本定義了,本篇文章將盡量的更加深層次的挖掘其內涵,希望能對大家有幫助。

一、抽象類

  1、形式

 1 abstract class Ceshi  2 { 3     abstract void show(); 4 } 5 class DemoA extends Ceshi 6 { 7     void show() 8     { 9         System.out.

  2、特點

    a、抽象類不可以被實例化

    b、抽象類必須有其子類覆蓋了所有抽象方法后,該子類才可以實例化,否則,該子類還是抽象類。

    c、抽象方法必須定義在抽象類中,該類必須也被abstract修飾。

  3、那么問題來了

    a、抽象類有構造函數嗎?

      有,用于給子類實例化。

    b、抽象類可以不定義抽象方法嗎?

      事實上是可以的,但是很少見。

    c、抽象類和一般類的異同點。      相同點:        抽象類和一般類都是用來描述事物的,都在內部定了成員。      不同點:        1,一般類有足夠的信息描述事物。抽象類描述事物的信息有可能不足。        2,一般類中不能定義抽象方法,只能定非抽象方法。抽象類中可定義抽象方法,同時也可以定義非抽象方法。        3,一般類可以被實例化。抽象類不可以被實例化。

二、接口

  從某種意義上說,接口是一種特殊形式的抽象類,在java語言中抽象類表示的是一種繼承關系,一個類只能繼承繼承一個抽象類,而一個類卻可以實現多個接口。

我們都知道接口的定義方式是

interface Demo{   void show();      }

其實對于接口當中常見的成員:而且這些成員都有固定的修飾符。a、全局常量: public static final

b、抽象方法:public abstract

1、由此得出結論,接口中的成員都是公共的權限。即全寫是

interface Demo{    public static final int num = 4;    public abstract void showa();}

2、接口特點

  a、接口是對外暴露的規則,是程序功能的擴展。

  b、接口降低了耦合性。

  c、一個類可以實現多個接口

    

abstract class Test2 extends Q implements A,Z{}

3、接口與抽象類異同點

  相同點:    都是不斷向上抽取而來的。

  不同點:

    1,抽象類需要被繼承,而且只能單繼承。接口需要被實現,而且可以多實現。

    2,抽象類中可以定義抽象方法和非抽象方法,子類繼承后,可以直接使用非抽象方法。接口中只能定義抽象方法,必須由子類去實現。

三、多態

  一個對象有不同的形態,這就是多態。

  比如 動物 ani = new 狗();

  這就是多態在代碼中的體現:父類引用指向子類對象。

1、多態好處與弊端

  多態的好處:提高了代碼的擴展性,前期定義的代碼可以使用后期的內容。

  多態的弊端:前期定義的內容不能使用(調用)后期子類的特有內容。

2、向下轉型

動物 ani = new Cat();Cat c = (Cat)ani;

3、內部類

  內部類是我們以前建的比較少的,其實就是類里面有類。

class Outer//外部類{    class Inner// 內部類。    {    }   } 

  a、內部類如何引用外部類?

  內部類持有了外部類的引用。 外部類名.this。

class Outer{    int num = 3;    class Inner    {        int num = 4;        void show()        {            int num = 5;            System.out.println(Outer.this.num);        }    }    void method()    {        new Inner().show();    }}

3、內部類可以存放在局部位置上,且在局部位置上只能訪問局部中被final修飾的局部變量。

class Outer{    void method()    {        final int x = 9;        class Inner        {            public String toString()            {            }        }    }}

4、匿名內部類

匿名內部類是內部類的一種簡寫形式,其實就是一個匿名子對象。

    public void method()    {        new Demo()//匿名內部類。        {            void show()            {                System.out.println("show:"+num);            }        }.show();    }

四、最后

抽象類、接口和多態雖然簡單,但是常用,尤其像是內部類、匿名內部類這些我們以前接觸較少,更應該重點掌握。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海门市| 敖汉旗| 宁南县| 阜康市| 永寿县| 凌海市| 武城县| 汉寿县| 侯马市| 高清| 阿勒泰市| 五华县| 瓮安县| 墨脱县| 平湖市| 临沭县| 壶关县| 怀宁县| 柯坪县| 治县。| 陈巴尔虎旗| 巫溪县| 海阳市| 尉犁县| 思茅市| 女性| 太仓市| 五台县| 金溪县| 右玉县| 金坛市| 福清市| 岱山县| 宁晋县| 鄂托克旗| 蒙阴县| 美姑县| 延津县| 会宁县| 东丰县| 东至县|