一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java中的多態用法實例分析

Java中的多態用法實例分析

2019-12-16 13:28司青 JAVA教程

這篇文章主要介紹了Java中的多態用法,較為詳細的分析了java中多態的概念與相關的實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java中的多態用法。分享給大家供大家參考。具體分析如下:

多態,是面向對象的程序設計語言最核心的特征。封裝性、繼承性都比較簡單,所以這里只對多態做一個小小的筆記。。。

1、什么是多態?

多態意味著一個對象可以多重特征,可以在特定的情況下,表現出不同的狀態,從而應對不同的屬性和方法。在Java中,多態的實現指的是使用同一個實現接口,以實現不同的對象實例。

例如,我們定義一個Parent類,再定義一個getName()方法返回一個字符串,定義一個形參為Parent類型的成員方法doSomething(Parent obj),在這個方法中調用obj.getName()。然后再定義兩個類A和B,都從Parent類繼承而來,在子類中重寫getName()方法。最后在main方法中創建一個Parent類的對象objP,調用objP.doSomething()方法并向其傳遞class A,和class B 的引用。觀察輸出結果。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Parent
{
  private String name = "parent";
  public String getName()
  {
    return this.name;
  }
  public void doSomething(Parent obj)
  {
    //輸出類名
    System.out.println(obj.getName());
  }
  public static void main(String[] args)
  {
    Parent objP = new Parent();
    objP.doSomething(new A());
 // 傳遞A的引用,則調用的是A類的getName方法
    objP.doSomething(new B());
 // 傳遞B的引用,則調用的是B類的getName方法
  }
}
class A extends Parent
{
  private String name = "class A";
  //@重寫getName()方法
  public String getName()
  {
    return this.name;
  }
}
class B extends Parent
{
  private String name = "class B";
  //@重寫getName()方法
  public String getName()
  {
    return this.name;
  }
}

Java中的多態用法實例分析

可見,父類的doSomething方法多態地調用了我們傳遞的對象的getName方法,而不是Parent類本身的getName方法。

2、Java中的接口

Java中的接口,是一系列方法的聲明。一個接口只有方法的特征,而沒有方法的實現。這些方法可以從別處通過特定的類來實現。在Java中,用關鍵字interface來聲明一個接口。

用接口實現多態的實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
interface Name
{
  //只聲明,不實現
  public String getName();
}
class A implements Name
{
  private String name = "class A";
  //實現getName方法
  public String getName()
  {
    return name;
  }
}
class B implements Name
{
  private String name = "class B";
  //實現getName方法
  public String getName()
  {
    return name;
  }
  public static void main(String[] args)
  {
    Name obj = new A();
    System.out.println(obj.getName());
  }
}

Java中的多態用法實例分析

可以看到,打印出了類A的名字class A。

PS:一個類如果沒有實現接口中的所有方法,那么這個類必須被聲明為abstract(抽象的)。一個abstract類是不允許實例化對象的。

希望本文所述對大家的java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 古装一级无遮挡毛片免费观看 | 青青青国产手机在线播放 | 刺激一区仑乱 | 男人视频网站 | 精品AV亚洲乱码一区二区 | 天天爽天天操 | 福利视频一区二区思瑞 | ass日本乱妇ass| 放荡警察巨r麻麻出轨小说 范冰冰特黄xx大片 饭冈加奈子在线播放观看 法国老妇性xx在线播放 | 亚洲另类第一页 | 国产高清在线精品一区二区三区 | 波多野结衣52部合集在线观看 | 女人全身裸露无遮挡免费观看 | 国产资源免费 | 日本人妖在线 | 国产精品第2页 | 97精品国产高清在线看入口 | 视频网站入口在线看 | 放荡女小洁的性日记 | 法国老妇性xx在线播放 | 国产精品久久久久一区二区三区 | 特级av毛片免费观看 | 美女尿口羞羞视频 | 国产一卡二卡四卡免费 | 亚洲国产99在线精品一区二区 | 男同桌脱我奶罩吸我奶作文 | 78成人网 | 三体动漫在线观看免费完整版2022 | 日韩香蕉视频 | 色综合天天娱乐综合网 | julia ann多人乱战 | 亚洲午夜小视频 | 日韩一本在线 | 色哟哟在线播放 | 精品欧美男同同性videos | 亚洲AV无码偷拍在线观看 | 性啪啪chinese东北女人 | 我和岳偷长篇小说 | sss在线播放| 日本人成动漫网站在线观看 | 久久久免费观成人影院 |