> 文章列表 > 多态的概述

多态的概述

多态的概述

多态性是面向对象思想中的一个非常重要的概念,
在Java中,多态是指"不同对象"在调用"同一个方法"时表现出的"多种不同行为"。
例如,要实现一个动物叫的方法,由于每种动物的叫声是不同的,
因此可以在"方法中接收一个动物类型(父类)的参数",
当传入猫类对象时就发出猫类的叫声,
传入犬类对象时就发出犬类的叫声。
"在同一个方法中,这种"由于参数类型不同"而导致执行效果不同的现象就是多态。"Java中多态主要有以下两种形式:
(1)方法的重载。  (方法名相同,参数不同,其对应功能不同,来保证的)2)对象的多态性(方法重写来保证的)。多态:事物表现的不同形态
前提:
1•必须有继承或接口实现关家(本次用"继承"来实验)
2•必须有方法重写
3•必须有"父类引用指向子类对象"(向上转型)
好处:提高方法的灵活性如果一个方法中使用父类或父接口作为形式参数,将来调用该方法时,可以传递任意的子类对象public abstract class  anmalsk         / 抽象动物父类
{public abstract  void shout();	  / 因为动物叫声是不一样的,所以用抽象函数来体现
}public class dog1 extends anmalsk       /狗继承动物类,并"重写"动物类的抽象函数
{	public void shout(){System.out.println("狗汪汪叫");	}	
}public class cat1 extends anmalsk       /猫继承动物类,并"重写"动物类的抽象函数{public void shout(){System.out.println("猫喵喵叫");	}	
}public class text6 {                               /主函数测试类public static void main(String[] args){
方法 1		anmalsk a= new dog1();                    /父类的引用指向子类对象对应方法1			a.shout();              /父类的引用指向子类对象的好处:父类对象可调用子类函数方法 2dog1 d=new dog1();usedog1(d);cat1  c=new cat1();usecat1(c);	方法 3dog1 d=new dog1();   /使用父类或父接口作为形式参数,将来调用该方法时,可以传递任意的子类对象useAnimal(d);cat1  c=new cat1();useAnimal(c);}对应方法 2 	public  static  void usecat1(cat1 c){c.shout();}public  static  void usedog1(dog1 d){d.shout();}对应方法 3
//该方法是同一种函数的通用调用方法,可以接收任意的子类对象,不用像方法2一样要写多个函数(多态使用场景),可以和方法1 有异曲同工之妙public  static  void useAnimal(anmalsk a)    /将父类作形式参数{ a.shout();}}

多态的概述