多态性的表现形式

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(); //创建对象n
10         n.showA();
11     }
12 }

运行结果:

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

来自张晓鹏的博文
原文地址:https://www.cnblogs.com/zhangxiaopeng/p/4783059.html