为了账号安全,请及时绑定邮箱和手机立即绑定

java 子类继承abstract父类时编译器不通过,将子类声明为abstract类后通过但是Initail类(测试类)中无法引用

java 子类继承abstract父类时编译器不通过,将子类声明为abstract类后通过但是Initail类(测试类)中无法引用

hunterter 2015-08-30 12:23:10
这是abstract父类但是子类这样写编译器报错错误如上图将子类声明abstract后通过了,但是测试类中无法引用:Shape sha1 = new Rectangle();报错。求高手指教。
查看完整描述

2 回答

已采纳
?
sunyx

TA贡献12条经验 获得超0个赞

报错很明显,Rectangle没有实现抽象类Shape中的方法,而是重载了_long 和square方法(对比shape和rectangle的两个方法的参数列表完全不同)。所以编译器告诉你,必须要实现抽象类中的方法。

把抽象方法改成如下

public abstract void Shape{
    public abstract void _long(int a,int b);
    public abstract void square(int a,int b);
}


查看完整回答
反对 回复 2015-08-30
?
忘性最大的人

TA贡献118条经验 获得超37个赞

首先,抽象类不能被实例化;再者你的抽象类方法明明是不含参数的,你把@Override注释去掉之后相当于在子类中新建了一个方法,跟原先的抽象父类就没什么关系了,相当于没有用到抽象父类。(个人见解,恐有不足)

查看完整回答
反对 回复 2015-08-30
  • 2 回答
  • 0 关注
  • 1676 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信