黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java的多態性的示例

Java的多態性的示例

更新時間:2022-06-23 11:17:00 來源:動力節點 瀏覽1793次

在本教程中,動力節點小編將借助示例了解 Java 多態及其實現。

多態是面向對象編程的一個重要概念。它只是意味著不止一種形式。

即同一個實體(方法或算子或對象)在不同的場景下可以執行不同的操作。

示例:Java 多態性

class Polygon {
  // method to render a shape
  public void render() {
    System.out.println("Rendering Polygon...");
  }
}
class Square extends Polygon {
  // renders Square
  public void render() {
    System.out.println("Rendering Square...");
  }
}
class Circle extends Polygon {
  // renders circle
  public void render() {
    System.out.println("Rendering Circle...");
  }
}
class Main {
  public static void main(String[] args) {    
    // create an object of Square
    Square s1 = new Square();
    s1.render();
    // create an object of Circle
    Circle c1 = new Circle();
    c1.render();
  }
}

輸出

Rendering Square...
Rendering Circle...

在上面的例子中,我們創建了一個超類:多邊形和兩個子類:正方形和圓圈. 注意render()方法的使用。

該render()方法的主要目的是渲染形狀。但是,繪制正方形的過程與繪制圓形的過程不同。

因此,該render()方法在不同的類中表現不同。或者,我們可以說render()是多態的。

為什么是多態性?

多態性允許我們創建一致的代碼。在前面的例子中,我們還可以創建不同的方法:renderSquare()和renderCircle()來渲染正方形和圓圈, 分別。

這將完美地工作。但是,對于每種形狀,我們都需要創建不同的方法。它會使我們的代碼不一致。

為了解決這個問題,Java 中的多態性允許我們創建一個方法render(),該方法將針對不同的形狀表現不同。

注意:該print()方法也是多態性的一個例子。它用于打印不同類型的值,如char, int,string等。

我們可以使用以下方式在 Java 中實現多態性:

方法覆蓋

方法重載

運算符重載

Java 方法覆蓋

在Java 中的繼承期間,如果相同的方法同時存在于超類和子類中。然后,子類中的方法會覆蓋超類中的相同方法。這稱為方法覆蓋。

在這種情況下,同一個方法將在超類中執行一項操作,在子類中執行另一項操作。例如,

示例 1:使用方法覆蓋的多態性

class Language {
  public void displayInfo() {
    System.out.println("Common English Language");
  }
}
class Java extends Language {
  @Override
  public void displayInfo() {
    System.out.println("Java Programming Language");
  }
}
class Main {
  public static void main(String[] args) {
    // create an object of Java class
    Java j1 = new Java();
    j1.displayInfo();
    // create an object of Language class
    Language l1 = new Language();
    l1.displayInfo();
  }
}

輸出:

Java Programming Language
Common English Language

在上面的例子中,我們創建了一個名為語和一個名為的子類爪哇. 在這里,該方法displayInfo()同時存在于語和爪哇.

用途displayInfo()是打印信息。但是,它正在打印不同的信息語和爪哇.

根據調用該方法的對象,打印相應的信息。

Java方法重載

在 Java 類中,如果參數不同,我們可以創建具有相同名稱的方法。例如,

void func() { ... }
void func(int a) { ... }
float func(double a) { ... }
float func(int a, float b) { ... }

這在 Java 中稱為方法重載。在這里,相同的方法會根據參數執行不同的操作。

示例:使用方法重載的多態性

class Pattern {
  // method without parameter
  public void display() {
    for (int i = 0; i < 10; i++) {
      System.out.print("*");
    }
  }
  // method with single parameter
  public void display(char symbol) {
    for (int i = 0; i < 10; i++) {
      System.out.print(symbol);
    }
  }
}
class Main {
  public static void main(String[] args) {
    Pattern d1 = new Pattern();
    // call method without any argument
    d1.display();
    System.out.println("\n");
    // call method with a single argument
    d1.display('#');
  }
}

輸出:

********** 
##########

在上面的例子中,我們創建了一個名為圖案. 該類包含一個名為display()重載的方法。

// method with no arguments
display() {...}
// method with a single char type argument
display(char symbol) {...}

這里的主要功能display()是打印圖案。但是,根據傳遞的參數,該方法正在執行不同的操作:

*如果沒有傳遞參數,則打印 的模式或

char如果傳遞了單個類型參數,則打印參數的模式。

注意:調用的方法由編譯器決定。因此,它也被稱為編譯時多態性。

Java 運算符重載

Java 中的一些運算符對不同的操作數表現不同。例如,

+運算符被重載以執行數字加法以及字符串連接,并且

像&,|和之類的運算符!被重載用于邏輯和按位運算。

讓我們看看如何使用運算符重載來實現多態性。

+運算符用于添加兩個實體。但是,在 Java 中,+運算符執行兩個操作。

1.+與數字(整數和浮點數)一起使用時,執行數學加法。例如,

int a = 5;
int b = 6;
// + with numbers
int sum = a + b;  // Output = 11

2. 當我們使用+帶字符串的運算符時,它會進行字符串連接(連接兩個字符串)。例如,

String first = "Java ";
String second = "Programming";
// + with strings
name = first + second;  // Output = Java Programming

在這里,我們可以看到+運算符在 Java 中被重載以執行兩個操作:加法和連接。

多態變量

如果一個變量在不同的條件下引用不同的值,則稱為多態。

對象變量(實例變量)表示Java中多態變量的行為。這是因為一個類的對象變量既可以引用它的類的對象,也可以引用它的子類的對象。

示例:多態變量

class ProgrammingLanguage {
  public void display() {
    System.out.println("I am Programming Language.");
  }
}
class Java extends ProgrammingLanguage {
  @Override
  public void display() {
    System.out.println("I am Object-Oriented Programming Language.");
  }
}
class Main {
  public static void main(String[] args) {
    // declare an object variable
    ProgrammingLanguage pl;
    // create object of ProgrammingLanguage
    pl = new ProgrammingLanguage();
    pl.display();
    // create object of Java class
    pl = new Java();
    pl.display();
  }
}

輸出:

I am Programming Language.
I am Object-Oriented Programming Language.

在上面的例子中,我們創建了一個對象變量請的編程語言班級。這里,請是一個多態變量。這是因為,在聲明中pl = new ProgrammingLanguage(),并且,在聲明中pl = new Java()。

以上就是關于“Java的多態性的示例”介紹,大家如果對此比較感興趣,想了解更多相關知識,可以關注一下動力節點的Java視頻教程,里面的課程內容細致全面,通俗易懂,很適合沒有基礎的小白學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩在线观看视频免费 | 日韩在线视频播放 | 国产一区精品在线 | 手机小视频在线观看 | 日韩成人免费视频播放 | 在线视频欧美亚洲 | 日韩欧美中文在线 | 亚洲天堂aa | 精品中文字幕一区二区三区四区 | 国产精品入口麻豆免费看 | 在线观看一区二区精品视频 | 首页 动漫 亚洲 欧美 日韩 | 一区二区三区中文国产亚洲 | 老司机午夜视频在线观看 | 男女男在线精品网站免费观看 | 在线中文字幕第一页 | 国产一区二区三区美女秒播 | 伊人天天躁夜夜躁狠狠 | 国产亚洲欧美一区 | 免费又黄又猛又爽的大片 | 日日操夜夜操天天操 | 看片地址 | 三级网站在线 | 91视频网页版 | www精品一区二区三区四区 | 久草中文在线观看 | 一个人视频资源在线观看www | a一级爱做片免费 | 成人小视频在线 | 亚洲最新地址 | 在线观看精品福利片香蕉 | 在线不卡一区二区三区日韩 | 日日操夜夜添 | 最近最新中文字幕免费大全3 | 羞羞午夜| 午夜痒痒网 | 日本婷婷| 亚洲地址一地址二地址三 | 亚洲视频网址 | 日韩在线视频不卡一区二区三区 | 伊人激情在线 |