关于多态和异常一个问题

Matthew_snow 2017-09-11 12:38:29

public class A {
void foo() throws Exception {
throw new Exception();
}
}

public class B extends A{

void foo() {
System.out.println("B");
}

A a = new B();
a.foo();
}

第14行会报编译错误,是什么原因?
...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SexyCode 2017-09-11
  • 打赏
  • 举报
回复
谢邀。。。 很基础的一个知识点。类的代码块里面只能定义类,不能调用语句。 至于你这个代码,a.foo();是在Class B的代码块里面,自然不能通过编译。 可以把他放到函数里面,比如这样
public class B extends A{
    
    void foo() {
        System.out.println("B");
    }
    public static void main(String[] args)
    {
        A a = new B();
        a.foo();
    }
    
}
  • 打赏
  • 举报
回复
好像是函数的调用,必须写在函数里,直接写在类里面当然会报错~
  • 打赏
  • 举报
回复
错在哪里了?没看出来

62,626

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧