Revisión de Java_ Downcasting

Primero defina una clase Fruit () y escriba los métodos big (), mid () y small () en la clase. Luego defina una clase Apple (), reescriba el método mid () en esta clase y escriba un método dulce () específico de la subclase. Luego escriba la clase de prueba Prueba (), en la clase Prueba primero realice una transformación ascendente y luego una transformación descendente. Ir directamente al código.

public class Fruit {
    public void big(){
        System.out.println("大水果");
    }
    public void mid(){
        System.out.println("中型水果");
    }
    public void small(){
        System.out.println("小水果");
    }
}
public class Apple extends Fruit{
    public void mid(){
        System.out.println("中型水果哈哈哈");
    }
    public void sweet(){
        System.out.println("苹果很甜");
    }
}
public class Test {
    public static void main(String[] args) {
        Fruit apple01 = new Apple();//上转型
        //我们尝试调用两个Apple类的方法,发现调用不到sweet()方法(这个为子类特有的方法)
        apple01.mid();
        //apple01.sweet();
        //我们将编译类型转成Apple 父类的引用指向的是当前目标类型的对象
        Apple apple02 =(Apple) apple01;
        apple02.sweet();//成功调用到sweet()方法
    }
}

El resultado de la operación es el siguiente

fruta mediana jajaja
las manzanas son dulces

 Resumir

Sintaxis: nombre de referencia de tipo de subclase = (tipo de subclase) referencia de clase principal

Solo la referencia de la clase principal se puede transferir a la fuerza, pero el objeto de la clase principal no se puede transferir a la fuerza

Se requiere que la referencia de la clase padre apunte a un objeto del tipo de destino actual

Después de la reducción, todos los miembros del tipo de subclase pueden llamarse

Supongo que te gusta

Origin blog.csdn.net/ming2060/article/details/127796054
Recomendado
Clasificación