栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java(三):面向对象:多态

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java(三):面向对象:多态

一:多态:Polymorphic

//多态
public class Polymorphic01 {
    public  static void main(String[] args){
        
        

        

        //使用多态实例化子类
        //把一个子类对象付给父类对象,这个是时候,只能调用父类的方法
        Animal a = new Dog();

        a.age = 20;
        a.sex ="公";
        a.breed = "金毛";
        a.eat();
        a.sleep();
    }
}

class Animal{
    String  breed; //品种
    int age;      //年龄
    String  sex;  //性别

    public  void  eat(){
        System.out.println("吃...........");
    }

    public void sleep(){
        System.out.println("睡...........");
    }
}

class Dog extends Animal{
    String furColor; //毛色

    public void  run(){
        System.out.println("跑...........");
    }

    @Override
    public void eat() {
        System.out.println("狗开始大口大口的吃狗粮");
    }

}

二:多态的应用:PolymorphicUse & instanceofKeyWord

//多态的应用
    
public class PolymorphicUse02 {
    public static void main(String[] args) {
        Master m = new Master();
        m.name ="小明";
        Dog dog = new  Dog();
        m.feed(dog);
        System.out.println("请输入你要买的动物");
        System.out.println("1、小狗 ,2、啥也没有");
        Scanner input = new Scanner(System.in);
        int choice = input.nextInt();
        Animal animal = m.buy(choice);
        if (animal!=null){
            System.out.println("购买成功");
            //将父类引用中的真实子类对象强制转回本身类型,称为向下转型
            //注意:只有转换回子类真实类型,才可以调用子类独有的属性和方法
            //如果不是真实的类型会出现异常:
            //Exception in thread "main" java.lang.classCallException
            //向下转型时,如果父类引用中的子类对象类型和目标类型不匹配,则会发生类型转换异常
             
            if(animal instanceof Dog){
                Dog dog1 = (Dog) animal;//强转成功
                dog1.run();
            }
        }else{
            System.out.println("没有其他东西");
        }
        //父类引用中保存真实的子类对象称为向上转型(多条的核心概念)
        //注意:仅可以调用Animal中的所声明的属性和方法
       // Animal animal = new Dog();


    }
}
class  Master{ //主人类
    String name;

   

    //使用多态
    public void feed(Animal animal){
        System.out.println(this.name +"喂食");
        animal.eat();
    }

    public Animal buy(int type){
        Animal animal = null;
        if (type == 1){
            animal = new Dog();
        }else {
            System.out.println("啥也没有");
        }
        return animal;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777457.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号