javaSE基础13之对象多态性

Java中多态性体现:

1,方法的重载和重写;

2,可以用父类的引用指向子类的具体实现,而且可以随时更换为其他子类的具体实现;

 》》》》》》》》》》

public class Animal {
    public void say(){
        System.out.println("这是动物类");
    }

}

》》》》》》》》》》

public class Cat extends Animal{
    public void say(){
        System.out.println("这是猫");
    }

}

》》》》》》》》》

public class Dog extends Animal{
    public void say(){
        System.out.println("这是狗");
    }

}

》》》》》》》》》

public class Test {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        /*Dog dog=new Dog();
        dog.say();
        Cat cat=new Cat();
        cat.say();*/
        
        //父类引用指向子类对象
        Animal animal=new Dog();
        animal.say();
        
        animal=new Cat();
        animal.say();
    }
   
}

》》》》》》》》》》》

对象的转型:

向上转型:子类对象——》父类对象 安全

向下转型:父类对象——》子类对象 不安全

public class Test {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        /*Dog dog=new Dog();
        dog.say();
        Cat cat=new Cat();
        cat.say();*/
        
        //父类引用指向子类对象
        Animal animal=new Dog();
        animal.say();
        
        //向下转型
        Dog dog=(Dog)animal;
        dog.say();
        
        //向下转型二,不安全
       /* Cat cat=(Cat)animal;
        cat.say();*/
    }
    

}

》》》》》》》》》》》》

接口的向上、下转型

public interface Animal2 {
   public void say2();

}

》》》》》》》

public class Dog2 implements Animal2{
    public void say2(){
        System.out.println("这是狗");
    }

}

》》》》》》》

public class Cat2 implements Animal2{
    public void say2(){
        System.out.println("这是猫");
    }

}

》》》》》》》

public class Test2 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        //父类引用指向子类对象
        Animal2 animal2=new Dog2();
        animal2.say2();
        
        //向下转型
        Dog2 dog2=(Dog2)animal2;
        dog2.say2();
        
        //向下转型二,不安全
       /* Cat2 cat2=(Cat2)animal2;
        cat2.say2();*/
    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值