Java高级面向对象设计:多态与相关概念解析
1. instanceof 运算符
instanceof 运算符可用于检查对象是否属于特定类或接口,避免运行时的 ClassCastException 。以下是一个示例:
class Rodent {}
public class Capybara extends Rodent {
public static void main(String[] args) {
Rodent rodent = new Rodent();
// var capybara = (Capybara)rodent; // ClassCastException
if(rodent instanceof Capybara c) {
// Do stuff
}
}
}
在上述代码中,直接进行类型转换会抛出 ClassCastException ,而使用 instanceof 运算符可以避免这种情况,只有当 instanceof 运算成功时才进行类型转换。
同时,编译器不允许将对象转换为不相关的类型,也不允许 instanceof 用于不相关的类型。例如:
public class Bird {}
public
超级会员免费看
订阅专栏 解锁全文
1364

被折叠的 条评论
为什么被折叠?



