我给你说说我的理解、多态就多种形态吧、比如成员函数的重载(Overload)意思就是在一个类内,允许有多个“函数名”相同,但“参数列”不同的成员函数、我给你发一个我的代码、你看看能不能了然哈、- class a07
- {
- public int getAverage(int value1,int value2) //注意这里的方法类型
- {
- int average;
- average = (value1 + value2)/2;
- return average;
- }
- public double getAverage(double value1,double value2) //注意这里的方法类型
- {
- double average;
- average = (value1 + value2)/2;
- return average;
- }
-
- public static void main(String[] para)
- {
-
- a07 aa= new a07();
- System.out.println(aa.getAverage(55,90));
- System.out.println(aa.getAverage(55.5,92.0));
-
- }
- }
复制代码 这不就实现多态了么
至于覆盖嘛、也差不多吧、成员函数的覆盖就是“子类”内可以定义与“父类”内同名(函数名+参数列)的成员函数,这样是“覆盖”继承
而来的成员函数、不过这个时候要注意的还挺多了、理论我就不给你说了、我也说不明白、这个代码你看看有没有必要研究下吧- import java.lang.*;
- import java.lang.reflect.Method;
- class a12
- {
- public static void main(String[] para)
- {
- System.out.println("====== A 类之 obj1 对象 ====== ");
- Aa obj1 = new Aa();
- obj1.fun1();
- obj1.showAA();
- obj1.showAA(1111);
- System.out.println("obj1.aa = " + obj1.aa);
-
- System.out.println("====== B1 类之 obj2 对象 ====== ");
- B1 obj2 = new B1();
- obj2.fun1();
- obj2.showAA();
- obj2.showAA(3333);
- System.out.println("obj2.aa = " + obj2.aa);
-
- System.out.println("====== B2 类之 obj3 对象 ====== ");
- B2 obj3 = new B2();
- obj3.fun1();
- obj3.showAA();
- obj3.showAA(6666);
- System.out.println("obj3.aa = " + obj3.aa);
-
- }
- }
- class Aa
- {
- public int aa = 1000;
-
- public void fun1()
- {
- System.out.println("A 类的 fun1() 方法");
- }
-
- public void fun2()
- {
- System.out.println("A 类的 fun2() 方法");
- }
-
- public void showAA()
- { // 存取 A 类内定义的 aa
- System.out.println("call A class showAA() : aa = " + aa);
- }
-
- public void showAA(int aaValue)
- {
- aa = aaValue;
- System.out.println("call A class showAA(int) : aa = " + aa);
- }
- }
- class B1 extends Aa
- {
- public String aa = "001-aa";
-
- public void showAA()
- { // 存取 B1 类内定义的 aa
- System.out.println("call B1 class showAA() : aa = " + aa);
- }
-
- public void fun1()
- { //返回类型一定要一样才能 override,否则会有 error
- System.out.println("B1 类的 fun1() 方法");
- }
- }
- class B2 extends Aa
- {
- public String aa = "002-aa";
- public int bb = 300;
-
- public final void fun1()
- { //修饰字不同一样也是 override
- System.out.println("B2 类的 fun1() 方法");
- bb = bb + 10;
- System.out.println("bb = " + bb);
- }
-
- public void fun2(String str)
- { //不算 fun2() 的 overload,也不是 override
- System.out.println(str + "B2 类的 fun2() 方法");
- }
- }
复制代码 |