Java中的編譯時多型性
多型性是在Java環境中物件能力的宣告。它允許我們以不同的方式執行相同的過程。Java中存在兩種型別多型性:
編譯時多型性方法
執行時多型性方法
今天,我們將討論如何使用方法過載和運算子過載來實現編譯時多型性。
編譯時多型性示例
這是一個例子:
void ARBRDD() { ... } void ARBRDD(int num1 ) { ... } void ARBRDD(float num1) { ... } void ARBRDD(int num1 , float num2 ) { ... } show the value of ( char a ) show the value of ( char a ,char b ) show the value of ( float a float b) show the value of ( int a, int b ) show the value of ( int a, float b ) show the value of ( float a, int b ) int sum value of (int, int); String sum value of (int, int);
執行編譯時多型性的演算法
在這個可能的演算法中,我們將向您展示如何在Java環境中執行編譯時多型性。透過使用此演算法,我們將構建一些Java語法,以有效的方式解釋該過程。
步驟1 - 開始程序。
步驟2 - 匯入並宣告執行方法所需的Java包。
步驟3 - 宣告一個公共類。
步驟4 - 提及字串引數。
步驟5 - 建立並宣告兩個函式引數。
步驟6 - 定義函式引數一。
步驟7 - 定義函式引數二。
步驟8 - 顯示兩個列表。
步驟9 - 比較兩個列表。
步驟10 - 如果評估結果為真,則列印相等訊息。
步驟11 - 如果評估結果為假,則阻止執行過程並列印不相等文字。
步驟12 - 插入另一個元素並覆蓋方法。
步驟13 - 顯示兩者。
步驟14 - 再次比較兩者。
步驟15 - 獲取結果。
步驟16 - 終止程序。
執行編譯時多型性的語法
class SimpleCalculator{ int add(int a, int b){ return a+b; } int add(int a, int b, int c){ return a+b+c; } } public class DemoCal{ SimpleCalculator obj = new SimpleCalculator(); System.out.println(obj.add(10, 20)); System.out.println(obj.add(10, 20, 30)); } } class SimpleCalculator{ int add(int a, int b){ return a+b; } int add(int a, int b, int c){ return a+b+c; } } public class DemoCal{ SimpleCalculator obj = new SimpleCalculator(); System.out.println(obj.add(10, 20)); System.out.println(obj.add(10, 20, 30)); } } class MethodOverloading { private static void display(int a){ System.out.println("Got Int data as a value."); } private static void display(String a){ System.out.println("Got String object as a value."); } public static void main(String[] args) { display(4); display("XYZ"); } } class Student{ public void stuIdentity(String name, int id){ System.out.println("stuName :" + name + " " + "Id :" + id); } public void stuIdentity(int id, String name){ System.out.println("Id :" + id + " " + "stuName :" + name); } } class Main { Student stu= new Student(); stu.stuIdentity("Mohit Roy", 1); stu.stuIdentity(2, "Mohini Basu"); } }
在上面這個可能的語法中,我們試圖向您展示如何構建一個函式以在多型性方法中使用它。透過使用這些Java語法,我們正在朝著一些與編譯時多型性相關的Java方法前進。
遵循的方法
方法1 - Java程式透過更改引數數量來演示方法過載的工作原理,以演示編譯時多型性
方法2 - Java程式使用render()型別方法實現編譯時多型性
方法1:使用引數數量執行編譯時多型性
con_str方法的使用
在這種可能的方法中,我們將應用con_str方法,透過更改引數數量來演示編譯時多型性的工作原理。
String con_str = s1 + s2; System.out.println("Concatenated strings :"+ con_str);
示例
//Java program to demonstrate the working of method overloading by changing the number of parameters public class ARBRDD { void show(int num1){ System.out.println("number 1 : " + num1); } void show(int num1, int num2){ System.out.println("number 1 : " + num1 + " number 2 : " + num2); } public static void main(String[] args){ ARBRDD obj = new ARBRDD(); obj.show(3); obj.show(4, 5); } }
輸出
number 1 : 3 number 1 : 4 number 2 : 5
資料型別方法的使用
在這種可能的方法中,我們將應用資料型別模式方法,透過更改引數數量來演示編譯時多型性的工作原理。
示例
//Java program to demonstrate the working of method overloading by changing the Datatype of parameter public class ARBRDD { static void show(int a, int b){ System.out.println("This is the integer function here"); } static void show(double a, double b){ System.out.println("This is the double function here"); } public static void main(String[] args){ show(1, 2); show(1.2, 2.4); } }
輸出
This is the integer function here This is the double function here
序列引數方法的使用
在這種可能的方法中,我們將應用序列引數方法,透過更改引數數量來演示編譯時多型性的工作原理。
示例
//Java program to demonstrate the working of method overloading by changing the sequence of parameters public class ARBRDD { static void show(int a, char ch){ System.out.println("integer : " + a + " and character : " + ch); } static void show(char ch, int a){ System.out.println("character : " + ch + " and integer : " + a); } public static void main(String[] args){ show(6, 'G'); show('G', 7); } }
輸出
integer : 6 and character : G character : G and integer : 7
方法2:render()方法的使用
在這種可能的方法中,我們將應用render方法,透過使用編譯時多型性來解釋運算子過載。
String s1 = sc.next(); System.out.println("Enter another string: "); String s2 = sc.next(); System.out.println(s1+' '+s2); System.out.println("Enter a number:"); int x = sc.nextInt(); System.out.println("Enter another number:"); int y = sc.nextInt();
示例1
//Java program to the use of the render() method for compile time polymorphism class Polygon { public void render() { System.out.println("Rendering Polygon Value..."); } } class Square extends Polygon { public void render() { System.out.println("Rendering Square Value..."); } } class Circle extends Polygon { public void render() { System.out.println("Rendering Circle Value..."); } } public class ARBRDD { public static void main(String[] args) { Square s1 = new Square(); s1.render(); Circle c1 = new Circle(); c1.render(); } }
輸出
Rendering Square Value... Rendering Circle Value...
在這種可能的方法中,我們將應用顯示資訊方法,透過使用編譯時多型性來解釋運算子過載。
示例2
//Java program to the use of the overriding method for compile time polymorphism 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"); } } public class ARBRDD { public static void main(String[] args) { Java j1 = new Java(); j1.displayInfo(); Language l1 = new Language(); l1.displayInfo(); } }
輸出
Java Programming Language Common English Language
在這種可能的方法中,我們將應用display()方法,透過使用編譯時多型性來解釋運算子過載。
示例3
//Java program to the use of the class contains a method named display() for compile time polymorphism class Pattern { public void display() { for (int i = 0; i < 10; i++) { System.out.print("@"); } } public void display(char symbol) { for (int i = 0; i < 10; i++) { System.out.print(symbol); } } } public class ARBRDD { public static void main(String[] args) { Pattern d1 = new Pattern(); d1.display(); System.out.println("\n"); d1.display('%'); } }
輸出
@@@@@@@@@@ %%%%%%%%%%
在這種可能的方法中,我們將應用一些多型變數和方法,透過使用編譯時多型性來解釋運算子過載。
示例4
//Java program to the use of the class contains a method named Polymorphic Variables for compile time polymorphism class ProgrammingLanguage { public void display() { System.out.println("I am a programmer. I Am From India!"); } } class Java extends ProgrammingLanguage { @Override public void display() { System.out.println("I am Java and I Am An Object-Oriented Programming Language."); } } public class ARBRDD { public static void main(String[] args) { ProgrammingLanguage pl; pl = new ProgrammingLanguage(); pl.display(); pl = new Java(); pl.display(); } }
輸出
I am a programmer. I Am From India! I am Java and I Am An Object-Oriented Programming Language.
結論
編譯時多型性是一個早期繫結過程,透過它我們可以解決程式在執行模式下的過載問題。在今天的文章中,我們學習了關於編譯時多型性的各種方法。透過使用演算法和語法,我們還構建了一些Java程式碼,以有效的方式解釋問題陳述。
另請閱讀: Java面試問題及答案