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

java学习笔记----测试多态的用法

2017-01-26 21:25 337 查看

java学习笔记(高琪版)

面向对象OOP

测试多态的用法

多态,是指程序最终状态是在程序运行时才被确定

首先一个类需要被多个类所继承

这多个类相较于父类都有一定的改写才有意义(方法的重写)

新建对象时父类引用指向子类的对象

带入方法的对象必须是父类形式

先定义三个继承于一个父类的子类

package com.lyr.oop.polymorphism;
/*
* 测试多态的用法
*/
public class Animal {
String name;

public void voice(){
System.out.println("动物的叫声");
}
}

class Cat extends Animal {
public void voice(){
System.out.println("喵喵喵");
}
public void Catch(){
System.out.println("抓住了");
}
}
class Dog extends Animal{
public void voice(){
System.out.println("汪汪汪");
}
}
class Pig extends Animal{
public void voice(){
System.out.println("哼哼哼");
}
}


test类,新建父类对象即可,代码运行时才考虑到具体是什么对象

package com.lyr.oop.polymorphism;
public class Test {

public static void testAnimalVoice(Animal c){
c.voice();
if (c instanceof Cat ){     //了解instanceof的用法,放在多态中用可判断输入的具体对象是什么
((Cat) c).Catch();
}
}

//下面是直接指定了该方法的输入对象,对象必须是Cat;

/*public static void testAnimalVoice(Cat c){
c.voice();
}
*/

public static void main(String[]args){
Animal a = new Cat();
testAnimalVoice(a);
Animal b = new Dog();
testAnimalVoice(b);

Pig c = new Pig();
testAnimalVoice(c);
}
}


instanceof的用法,判断输入的对象是否为指定对象,放在多态的方法中;

如果需要调用这个子类对象特有并需要特殊执行的方法,则可以用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 面向对象