这是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); }
忘性最大的人
TA贡献118条经验 获得超37个赞
首先,抽象类不能被实例化;再者你的抽象类方法明明是不含参数的,你把@Override注释去掉之后相当于在子类中新建了一个方法,跟原先的抽象父类就没什么关系了,相当于没有用到抽象父类。(个人见解,恐有不足)
添加回答
举报
0/150
提交
取消