疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java多态性的表现形式


 

  

  1.什么是多态

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

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

  方法重载: 通常是指在同一个类中,相同的方法名对应着不同的方法实现,这些方法名相同的方法其区别在于他们需要的参数不同。即采用不同的方法形参表,区分重载方法要求形参在数据类型、个数和顺序的不同。(见实例2.1)

  方法重写: 方法重写主要用于父类和子类间。子类重写父类的方法,只是对应的方法实现不同,其方法名和参数都相同。(见实例2.2)

  抽象类: 在java语言中,一个类中的方法只给出了标准,而没有给出具体的实现方法,这样的类就是抽象类。例如父类就是抽象类,它不会被实例化的类。

  接口: 在多态机制中,接口比抽象类使用起来更加方便。而抽象类组成的集合就是接口。

  实例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 }

  复制代码

  运行结果:

  我是show方法这是一个TestPolymorphisml类

  我重载show方法这是方法重载的实例

  实例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 }

  复制代码

  运行结果:

  我是A类

  我是重写方法

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