你的位置:首页 > Java教程

[Java教程]多态性的表现形式


1.什么是多态

   面向对象的多态性就是将父类对象应用到子类对象的特征。简单地讲,多态指的就是在应用程序中出现的“重名”现象。多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类和相关类。这样既降低了维护的难度,又节省了时间。

2.在java语言中,多态性体现在哪些方面

  1. 方法重载:    通常是指在同一个类中,相同的方法名对应着不同的方法实现,这些方法名相同的方法其区别在于他们需要的参数不同。即采用不同的方法形参表,区分重载方法要求形参在数据类型、个数和顺序的不同。(见实例2.1)
  2. 方法重写:    方法重写主要用于父类和子类间。子类重写父类的方法,只是对应的方法实现不同,其方法名和参数都相同。(见实例2.2)
  3. 抽象类:       在java语言中,一个类中的方法只给出了标准,而没有给出具体的实现方法,这样的类就是抽象类。例如父类就是抽象类,它不会被实例化的类。
  4. 接口:          在多态机制中,接口比抽象类使用起来更加方便。而抽象类组成的集合就是接口

实例2.1    该类中声明了两个show方法,但是两个方法的形式参数是不同,所以说第二个show方法重载了第一个show方法

 1 /* 定义类TestPolymorphisml*/ 2 public class TestPolymorphisml { 3  4   String s="这是方法重载的实例"; 5   String ss="这是一个TestPolymorphisml类"; 6   public void show(){ 7     System.out.println("我是show方法"+ss); 8   } 9   public void show( String str){   //这个方法就是对上一个show方法的重载,方法名相同,只是他们需要的形参不一样10     System.out.println("我重载了show方法"+str);11   }12   public static void main(String[] args) {13     TestPolymorphisml test = new TestPolymorphisml();14     test.show(); //对象调用第一个show方法15     test.show(test.s); //调用重载的show方法16   }17 }

运行结果:

实例2.2 先新建一个A类,再建一个类继承A类,在子类中对父类的属性和方法进行重写

1 /*定义A类*/2 public class A {3   String a="我是A类";4   public void showA(){5     System.out.println(a);6   }7 }

 1 /*定义类TestPolymorphism2 让它继承A类*/ 2 public class TestPolymorphism2 extends A{ 3   String b="我是重写方法"; //这是对父类的a属性的重写 4   public void showA(){ //这是对父类showA方法的重写 5       super.showA(); //使用关键字super调用父类的showA方法 6       System.out.println(b); 7     } 8   public static void main(String[] args) { 9     TestPolymorphism2 n = new TestPolymorphism2(); //创建对象n10     n.showA();11   }12 }

运行结果:

在实验中我们可以很清晰的看出多态性在java语言编程中占着多么重要的地位。