java 之多态基本概念和instanceof 运算符

面向对象三大特征   继承,封装,多态。实现多态必须有继承,重写方法

编译(说) 运行(做)
父类的方法 子类的实际方法()

 

 

 

实例

package com.bjsxt.oop.polymorphism;

public class Animal {
public void voice() {
System.out.println("普通叫声");
}
}
class Cat extends Animal{
public void voice() {
System.out.println("喵喵");
}
}

class Dog extends Animal{
public void voice() {
System.out.println("汪汪汪");
}
}

class Pig extends Animal{
public void voice() {
System.out.println("哼哼哼");
}
}

 

package com.bjsxt.oop.polymorphism;

public class Test {
public static void testAnimalVoice(Animal animal){
animal.voice();
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Cat cat=new Cat();
Dog dog =new Dog();
Pig pig=new Pig();
testAnimalVoice(cat);
testAnimalVoice(dog);
testAnimalVoice(pig);
}

}

 

 

 

 

 

父类的引用指向子类的对象,可以使用上图中的方法使用多态

 

多态是方法的多态,属性没有多态

 

 

 

//对象的转型

package com.bjsxt.oop.polymorphism;

public class Test {
public static void testAnimalVoice(Animal animal) {
animal.voice();
}

public static void main(String[] args) {
// TODO 自动生成的方法存根
Animal cat = new Cat();
Animal dog = new Dog();
Animal pig = new Pig();
testAnimalVoice(cat);
testAnimalVoice(dog);
testAnimalVoice(pig);
// cat.catchMouse();//编译器中 并没有找到 Animal 有这个方法,因此会报错,解决这个方法,要进行转型
Cat a2 =(Cat)cat;
a2.catchMouse();

}

}

 

instanceof

 

posted on 2016-03-11 15:13  1130136248  阅读(99)  评论(0)    收藏  举报

导航