是指将一个子类对象赋值给父类引用,并且只能访问父类中定义的属性和方法,而无法访问子类特有的属性和方法。
这种强制转换通常用于需要将子类对象作为父类对象处理的场景,例如在多态中,父类引用可以指向子类对象,但只能调用父类中定义的方法。在这种情况下,如果子类中有一些特有的属性或方法,通过强制转换为父类类型,可以屏蔽掉子类特有的内容,只使用父类的属性和方法。
强制转换的语法为:父类类型 变量名 = (父类类型) 子类对象;
下面是一个示例代码:
class Parent {
public void print() {
System.out.println("This is the parent class.");
}
}
class Child extends Parent {
public void print() {
System.out.println("This is the child class.");
}
public void childMethod() {
System.out.println("This is a child-specific method.");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.print(); // 输出:This is the child class.
child.childMethod(); // 输出:This is a child-specific method.
Parent parent = (Parent) child;
parent.print(); // 输出:This is the child class.(调用的是子类的方法,但输出的是父类的内容)
// parent.childMethod(); // 编译错误,无法访问子类特有的方法
}
}
在上述代码中,通过强制转换将子类对象child赋值给父类引用parent。虽然调用的是子类的方法,但输出的是父类的内容。同时,由于parent是父类类型,无法访问子类特有的方法childMethod。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云