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