多态(Java)

一、多态

1、什么是多态?

解析:不同的对象对于同一个操作,做出的响应不同

         具有表现多种形态的能力的特征

2、使用多态的优点

解析:为了实现统一调用

一个小例子:<父类类型作为参数>

父类(Pet) 子类(Gog,Penguin) 主人类(Master)测试类(Test)

Pet

public abstract class Pet {
    public abstract void eat();

}

Dog

复制代码
   public class Dog extends Pet{

    @Override
    public void eat() {
        System.out.println("够吃骨头");
        
    }
复制代码

Penguin  

复制代码
   public class Penguin extends Pet {

    @Override
    public void eat() {
        System.out.println("企鹅吃fish");
        
    }
复制代码

Master 

复制代码
public class Master {
    //父类类型作为参数
public void feed(Pet pet)
{
    pet.eat();
    }

}
复制代码

Test 

复制代码
    public static void main(String[] args) {
        Master master=new Master();
        
        Pet pet=new Dog();
        
        master.feed(pet);

    }
复制代码

二、子类到父类的转换(向上转型)

规则:

① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换

② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法

③ 通过父类引用变量无法调用子类特有的方法

三、java中两种实现和使用多态的方式

① 使用父类作为方法形参

② 使用父类作为方法返回值

四、父类到子类的转换(向下转型)

将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换

五、instanceof运算符

语法:

对象 instanceof 类或接口

该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false

注:

① 使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误

② instanceof通常和强制类型转换结合使用

 


posted @ 2016-05-26 21:32  Beyondづ  阅读(1223)  评论(0编辑  收藏  举报