instanceof 关键字的使用

代码示例

public class InstanceofTest {
        public static void main(String[] args) {
            Dog d=new Dog("哈士奇","白色");
            d.run();
            System.out.println("狗是狗类吗?"+(d instanceof Dog));
            System.out.println("狗是动物类吗?"+(d instanceof Animal1));
            Mouse m=new Mouse("汤姆","黑色");
            m.bite();
            // System.out.println("狗是动物类吗?"+(d instanceof Mouse));

            // Animal1 animal1=(Animal1)d;
            // System.out.println(animal1.getName());

            Animal1 animal11 = new Dog("小妞");
            System.out.println((animal11 instanceof Dog)+"  父类是狗狗");
            Dog dog=(Dog)animal11;
            System.out.println(dog.getName()+" 狗狗姓名");

            Animal1 animal12 = new Mouse("小妞niu");
            Mouse mouse=(Mouse)animal12;
            System.out.println(mouse.getName()+"  老鼠姓名");




            //     Animal1 a=new Animal1("动物","蓝色");
        //     System.out.println("动物类是狗吗?"+(a instanceof Dog));
        //     if(a instanceof Dog){
        //         Dog dog=(Dog)a;
        //         System.out.println("强转成功");
        //     }
    }
}
class Animal1{   //动物类
    String name;
    String color;
    public Animal1(String name,String color){
        this.name=name;
        this.color=color;
    }

    public Animal1() {

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}

class Dog extends Animal1{          //狗类
    private String name;

    public Dog(String name, String color) {
        super(name, color);
    }
    public Dog(String name) {
        this.name = name;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public void setName(String name) {
        this.name = name;
    }

    public void run(){
        System.out.println(name+"开始奔跑");
    }
}

class Mouse extends Animal1{         //老鼠类
    private String name;

    public Mouse(String name) {
        this.name = name;
    }

    public Mouse(String name,String color){
        super(name,color);
    }
    public void bite(){
        System.out.println(name+"吃东西");
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public void setName(String name) {
        this.name = name;
    }
}

打印结果

null开始奔跑
狗是狗类吗?true
狗是动物类吗?true
null吃东西
true  父类是狗狗
小妞 狗狗姓名
小妞niu  老鼠姓名

1、Java 继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

2、Java 子类强转父类
父类引用指向子类对象:
java中子类强转父类,实际上依然是子类;
该引用只能调用父类中定义的方法和变量;
如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;

3、Java 父类强转子类
只有父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象.

这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!!!

猜你喜欢

转载自blog.csdn.net/taiguolaotu/article/details/113822355