Java类型转换之instanceof

野性酷女 2022-05-31 14:06 216阅读 0赞
  1. /*
  2. * 引用类型转换
  3. * 1、向下转型
  4. * 2、向上转型
  5. * 3、instanceof运算符,用来检查引用对象的类型
  6. *
  7. */
  8. public class Hey {
  9. public static void main(String[] args) {
  10. // 向下转换成功
  11. Circle c = new Circle();
  12. Shape s = (Shape)c;
  13. Shape s2= (Shape)new Circle();
  14. Circle c2 = (Circle)s2;
  15. s2 = new Rect();
  16. // Circle c3 = (Circle) s2; //Rect cannot be cast to Circle // 转换异常
  17. // 用如下代码测试是否可以转换
  18. if(testIfCanCast(s2)) {
  19. Circle c3 = (Circle) s2; //Rect cannot be cast to Circle
  20. }
  21. }
  22. /*
  23. * test if can cast to Circle
  24. * */
  25. private static boolean testIfCanCast(Shape s){
  26. if(s instanceof Circle) {
  27. Circle c = (Circle) s;
  28. System.out.println("OK");
  29. return true;
  30. }else {
  31. System.out.println("Error, cannot cast to Circle.");
  32. return false;
  33. }
  34. }
  35. }
  36. class Shape{
  37. }
  38. class Circle extends Shape{
  39. }
  40. class Rect extends Shape{
  41. }

发表评论

表情:
评论列表 (有 0 条评论,216人围观)

还没有评论,来说两句吧...

相关阅读