• Java面向对象--instanceof关键字


    作用:判断一个对象是否属于一个类

    格式:对象 instanceof 类 返回布尔类型

    我们先来建一个父类Animal,以及子类Dog,Cat类:

    package com.java1234.chap03.sec14;
     
    public class Animal {
     
        public void say(){
            System.out.println("我是一个动物");
        }
    }
    package com.java1234.chap03.sec14;
     
    public class Dog extends Animal{
     
        public void say(){
            System.out.println("我是一只狗");
        }
    }
     
    public class Cat extends Animal{
     
        public void say(){
            System.out.println("我是一只猫");
        }
    }

    我们搞个测试类:

    package com.java1234.chap03.sec14;
     
    public class Test {
     
        public static void main(String[] args) {
            Animal dog=new Dog();
            System.out.println("dog对象是否属于Animal类:"+(dog instanceof Animal));
            System.out.println("dog对象是否属于Dog类:"+(dog instanceof Dog));
            System.out.println("dog对象是否属于Cat类:"+(dog instanceof Cat));
        }
    }

    运行输出:

    dog对象是否属于Animal类:true

    dog对象是否属于Dog类:true

    dog对象是否属于Cat类:false

    通过instanceof我们可以确保向下转型的不出问题;

    我们给Dog类,Cat类加各自的方法;

    package com.java1234.chap03.sec14;
     
    public class Dog extends Animal{
     
        public void say(){
            System.out.println("我是一只狗");
        }
         
        public void f1(){
            System.out.println("汪汪...");
        }
    }
    package com.java1234.chap03.sec14;
     
    public class Cat extends Animal{
     
        public void say(){
            System.out.println("我是一只猫");
        }
         
        public void f2(){
            System.out.println("我喜欢吃鱼");
        }
    }
    package com.java1234.chap03.sec14;
     
    public class Test {
     
        public static void doSomeThing(Animal animal){
            animal.say();
            if(animal instanceof Dog){
                ((Dog) animal).f1();
            }else if(animal instanceof Cat){
                ((Cat) animal).f2();
            }
        }
         
        public static void main(String[] args) {
            Animal dog=new Dog();
            System.out.println("dog对象是否属于Animal类:"+(dog instanceof Animal));
            System.out.println("dog对象是否属于Dog类:"+(dog instanceof Dog));
            System.out.println("dog对象是否属于Cat类:"+(dog instanceof Cat));
             
            doSomeThing(new Dog());
            doSomeThing(new Cat());
        }
    }

    运行输出:

    dog对象是否属于Animal类:true

    dog对象是否属于Dog类:true

    dog对象是否属于Cat类:false

    我是一只狗

    汪汪...

    我是一只猫

    我喜欢吃鱼

  • 相关阅读:
    服务器负载均衡的基本功能和实现原理
    几种负载均衡技术的实现
    Postman-CI集成Jenkins
    Postman-进阶
    Postman-简单使用
    chrome安装插件,安装Postman
    关于angularjs dom渲染结束再执行的问题
    Protractor(angular定制的e2e)的简易入门
    关于ng-router嵌套使用和总结
    scss使用后的简单入门总结
  • 原文地址:https://www.cnblogs.com/xyg-zyx/p/9827374.html
Copyright © 2020-2023  润新知