Uso de la palabra clave instanceof

Ejemplo de código

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;
    }
}

Resultado de la impresión

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

1. La herencia de Java
significa que la subclase hereda las características y comportamientos de la clase principal, de modo que el objeto de la subclase (instancia) tiene el dominio de instancia y los métodos de la clase principal, o la subclase hereda métodos de la clase principal, de modo que el La subclase tiene el mismo comportamiento que la clase principal.

2. La subclase de Java se fuerza a la clase principal. La
referencia de la clase principal apunta al objeto de la subclase: la subclase en
Java se fuerza a la clase principal, pero sigue siendo la subclase de hecho;
la referencia solo puede llamar a los métodos y variables definidas en la clase principal;
si la subclase es Se anula un método en la clase principal, cuando se llame a este método, se llamará a este método en la subclase;

3. La clase principal de Java, la clase de rotor fuerte
solo tiene la clase principal el objeto de clase en sí mismo cuando la subclase new sale, se puede convertir en un objeto de subclase en el futuro.

La perseverancia o la no perseverancia en esta vida no es terrible, ¡lo que temo es caminar solo por el camino de la perseverancia! ! !

Supongo que te gusta

Origin blog.csdn.net/taiguolaotu/article/details/113822355
Recomendado
Clasificación