您的位置:首页 > 编程语言 > Java开发

Java中的多态的用途

2016-05-06 11:17 465 查看
package com.saiermeng;

/*

多态:可以理解为事物存在的多种体现形态。

人:男人,女人。

动物:猫,狗。

猫 x = new 猫();

动物 x = new 猫();

1,多态的体现

父类的引用指向了自己的子类对象。

父类的引用也可以接收自己的子类对象。

2,多态的前提

必须是类与类之间有关系。要么继承,要么实现。

通常还有一个前提:存在覆盖。

3,多态的好处

多态的出现大大的提高程序的扩展性。

4,多态的弊端:

提高了扩展性,但是只能使用父类的引用访问父类中的成员。

5,多态的应用

*/

/*

动物,

猫,狗。

*/

abstract class Animal1{

abstract void eat();

}

class Cat extends Animal1{

public void eat(){ //public static void main(String[]args){}

System.out.println("吃鱼");

}

public void catchMouse(){

System.out.println("抓老鼠");

}

}

class Dog extends Animal1{

public void eat(){

System.out.println("吃骨头");

}

public void kanJia(){

System.out.println("看家");

}

}

class Pig extends Animal1{

public void eat(){

System.out.println("饲料");

}

public void gongDi(){

System.out.println("拱地");

}

}

public class DuoTaiDemo1 {

public static void main(String[]args){

Animal1 c = new Cat();

c.eat(); //如果写c.catchMouse就会报错,是因为在主函数中只能调用父类中拥有的共有的行为。

//Cat c = new Cat();

//Function(c);

}

public static void Function(Animal1 c){

c.eat();

}

}

运行的结果是:

吃鱼

上面说到多态的前提还存在覆盖,下面举例子来解释覆盖的意思:

package com.saiermeng;

public class fugai {

public static void main(String[] args){

Zi z =new Zi();

z.show();

}

}

class Fu{

void show(){

System.out.println("nihao");

}

}

class Zi extends Fu{

//子类把父类的方法给进行了重写,或者改变就叫做覆盖

void show(){

System.out.println("zaijian");

}

}

运行的结果是zaijian.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: