您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java从超类调用子类方法

Java从超类调用子类方法

当你将变量声明为具有超类的类型时,只能通过该变量访问(公共)方法和超类的成员变量。

Pet cat = new Cat("Feline",12,"Orange"); 
cat.getName(); // this is OK
cat.getColor(); // this is not OK, getColor() is not in Pet

要访问具体类中的方法(Cat在这种情况下),你需要将变量声明为派生类

Cat cat = new Cat("Feline",12,"Orange"); 
cat.getName(); // OK, getName() is part of Cat (and the superclass)
cat.getColor(); // OK, getColor() is part of Cat

或将其转换为你知道/怀疑是具体类型的类型

Pet cat = new Cat("Feline",12,"Orange"); 
((Cat)cat).getName(); // OK (same as above)

((Cat)cat).getColor(); // Now we are looking at cat through the glass of Cat

你甚至可以结合使用两种方法

Pet pet = new Cat("Feline",12,"Orange"); 
Cat cat = (Cat)pet;
cat.getName(); // OK
cat.getColor(); // OK
java 2022/1/1 18:23:04 有537人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶