题目这个案例的疑问

题目这个案例的疑问

如果要在Master调用子类的独有的方法,只是类型转换是不是就没办法完成呢?上述案例要怎么改呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕珊 2017-05-11 11:35:24

你好!不知道你说的是不是我下面代码的情况:

public class Animal {
public void eat(){
System.out.println("animal eat....");
}
}
public class Cat extends Animal{
public void bark(){
System.out.println("miaomiao");
}
public static void main(String[] args) {
Animal animal=new Animal();
Cat cat=(Cat)animal;
cat.bark();
}
}

这段代码编译没有错误,但是会报类型转换异常,也就是为了避免出问题,Java是不允许这么转换的。主方法中的代码改为如下情况是没有问题的:

public static void main(String[] args) {
Animal animal=new Animal();
if(animal instanceof Cat){
Cat cat=(Cat)animal;
cat.bark();
}
}

也就是说,只有是Cat类的对象时,才能进行强制类型转换。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 老师你的代码怎么可以这么清晰规整的现实出来,怎么做到的,这是图片吗?还是
    2017-06-03 09:32:47
  • 在发布或回答问题时,左上角有个代码语言,把需要的代码选中,然后选择代码语言中的Java就可以了
    2017-06-03 18:09:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师