大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

帶你了解Java多態的概念

更新時間:2022-03-22 09:17:47 來源:動力節點 瀏覽1826次

多態性一詞意味著具有多種形式。簡單來說,我們可以將多態性定義為消息以多種形式顯示的能力。

現實生活中的插圖:多態性

一個人同時可以有不同的特征。就像一個男人同時是父親、丈夫、雇員。因此,同一個人在不同的情況下具有不同的行為。這稱為多態性。

多態性被認為是面向對象編程的重要特征之一。多態性允許我們以不同的方式執行單個操作。換句話說,多態性允許您定義一個接口并具有多個實現。“poly”這個詞意味著許多,“morphs”意味著形式,所以它意味著許多形式。

多態性的類型

Java中的多態主要分為兩種:

編譯時多態性

運行時多態性

類型 1:編譯時多態性

它也被稱為靜態多態性。這種類型的多態性是通過函數重載或運算符重載來實現的。

注意:但 Java 不支持運算符重載。

方法重載:當有多個同名但參數不同的函數時,這些函數稱為重載。函數可以通過更改參數數量或/和更改參數類型來重載。

示例 1

// Java Program for Method overloading
// By using Different Types of Arguments
// Class 1
// Helper class
class Helper {
	// Method with 2 integer parameters
	static int Multiply(int a, int b)
	{
		// Returns product of integer numbers
		return a * b;
	}
	// Method 2
	// With same name but with 2 double parameters
	static double Multiply(double a, double b)
	{
		// Returns product of double numbers
		return a * b;
	}
}
// Class 2
// Main class
class GFG {
	// Main driver method
	public static void main(String[] args)
	{
		// Calling method by passing
		// input as in arguments
		System.out.println(Helper.Multiply(2, 4));
		System.out.println(Helper.Multiply(5.5, 6.3));
	}
}

輸出:

8
34.65

示例 2

// Java program for Method Overloading
// by Using Different Numbers of Arguments
// Class 1
// Helper class
class Helper {
	// Method 1
	// Multiplication of 2 numbers
	static int Multiply(int a, int b)
	{
		// Return product
		return a * b;
	}
	// Method 2
	// // Multiplication of 3 numbers
	static int Multiply(int a, int b, int c)
	{
		// Return product
		return a * b * c;
	}
}
// Class 2
// Main class
class GFG {
	// Main driver method
	public static void main(String[] args)
	{
		// Calling method by passing
		// input as in arguments
		System.out.println(Helper.Multiply(2, 4));
		System.out.println(Helper.Multiply(2, 7, 3));
	}
}

輸出:

8
42

類型 2:運行時多態性

它也被稱為動態方法調度。這是一個在運行時解析對被覆蓋方法的函數調用的過程。這種類型的多態性是通過方法覆蓋來實現的。 另一方面,當派生類具有基類的一個成員函數的定義時,就會發生方法覆蓋。據說該基本功能已被覆蓋。

例子

// Java Program for Method Overriding
// Class 1
// Helper class
class Parent {
	// Method of parent class
	void Print()
	{
		// Print statement
		System.out.println("parent class");
	}
}
// Class 2
// Helper class
class subclass1 extends Parent {
	// Method
	void Print() { System.out.println("subclass1"); }
}
// Class 3
// Helper class
class subclass2 extends Parent {
	// Method
	void Print()
	{
		// Print statement
		System.out.println("subclass2");
	}
}
// Class 4
// Main class
class GFG {
	// Main driver method
	public static void main(String[] args)
	{
		// Creating object of class 1
		Parent a;
		// Now we will be calling print methods
		// inside main() method
		a = new subclass1();
		a.Print();
		a = new subclass2();
		a.Print();
	}
}

輸出:

子類1
子類2

輸出說明:

在這個程序中,當一個子類的對象被創建時,子類內部的方法就會被調用。這是因為父類中的方法被子類覆蓋了。由于該方法被重寫,因此該方法在子類中比父方法具有更高的優先級。因此,子類中的主體被執行。

通過上述介紹大家對Java多態的概念已經有所了解,當然,Java多態的存在也是有條件的,感興趣的小伙伴可以關注一下動力節點的java多態的三個條件分別是什么,希望對大家的學習有所幫助。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品亚洲国产 | 狠狠色噜噜狠狠狠狠888奇米 | 一本色道久久综合一区 | 成人国产精品视频频 | 久久久久夜 | 日韩精品欧美成人 | 久久国产精品永久免费网站 | 亚洲女精品一区二区三区 | 欧美 日产 国产精品 | 欧美老妇69交| 国产一区二区在线视频 | 国产亚洲欧美一区 | 国产香蕉在线视频 | 在线资源站| 色狠狠一区二区三区香蕉蜜桃 | 91视频老司机 | 夜夜骑夜夜操 | 亚洲人成自拍网站在线观看忄 | 国产精品美女自在线观看免费 | 99re免费视频精品全部 | 高清国产精品久久 | 久久久久国产精品免费免费不卡 | 免费看一级做a爰片久久 | 狠狠色丁香久久婷婷综合五月 | 日韩 三级| 国产香蕉一区二区精品视频 | 日本免费中文字幕在线看 | 国产欧美亚洲另类第一页 | 国产欧美日韩精品一区二区三区 | 亚洲国产成人资源在线桃色 | 欧美巨大xxxx做受孕妇视频 | 一级成人生活片免费看 | 国产一区二区精品久久 | 国产精品国产亚洲精品看不卡 | 欧美精品亚洲精品日韩专区 | 久久久这里只有免费精品2018 | 四虎永久网址在线观看 | 91亚洲精品国产第一区 | 国产精品日本一区二区不卡视频 | 中文字幕亚洲第一 | 级毛片久久久毛片精品毛片 |