中易网

Java提示类既不是抽象的。并且未覆盖父类的抽象方法

答案:3  悬赏:0  
解决时间 2021-02-23 04:01
这是父类
package dd;
abstract public class Test
{
abstract public void good();
}
这是我的子类
package cc;
import dd.Test;

public class ddd extends Test
{
public void good(){
System.out.println("prin");
}

}

Java提示ddd.java既不是抽象类,并且没有覆盖父类的抽象方法。
我看父类的抽象方法,我都已经重写了。怎么不行呢
但是我如果在Test类里面加个属性就可以了。为什么呢?

我确实在在父类的good方法上加了abstract。
覆盖是java的错误提示,我觉得意思好像是我没有重写abstract那个抽象方法。

我的解决办法是在父类加上个属性,int a;就编译通过了。
最佳答案
其实和你加不加那个属性没有关系的;
只要你重写了父类的Abstract的方法就不会报错
!!

别在纠结了 给我最佳答案吧 呵呵
public class ddd extends Test
这句话很明显ddd不是抽象类

abstract public void good();
你是不是加了一个abstract
如果没有abstract 的话那么这个方法就是父类中独有的方法
当然子类中当然也有这个方法
这时候你写的good就是重写了

加了一个abstract 那么这个方法必须重写

对啊 我将的很明确了啊
关于你说那个覆盖的意思我就不明白了

这个good方法只取决于你是不是必须重写 也就是你父类方法的定义是否是abstrat 的
全部回答
用事实讲话: 这是我自己写的一个,确实没问题,问题应该是你自己的问题,逻辑肯定是没问题的,你仔细对比下,看哪不小心写错了,不行你把抽象方法和类 换成普通的方法重写下看看,你所贴上来的代码应该不报错才对的 //father abstract public class Test { abstract public void good(); } //child public class Sub extends Test{ @Override public void good() { // TODO Auto-generated method stub System.out.println("复写成功!"); } public static void main(String args[]){ Sub sub = new Sub(); sub.good(); } }

确定这个类没问题?抽象类不能实例化,get set也全是abstract,shapeabstract x,y 都是private ,circle1 继承shapeabstract 类后,math.sqrt((this.x-x)  请问下this.x这个值怎么给。到时不就成了。math.sqrt((0-x)*(0-x)+(0-y)*(0-y));   了?

下面给出了一个抽象类shapeabstract,它里面包含有一般方法、抽象方法和最终方法

你这里好像自有一个public final double distance(double x,double y)最终方法,一般方法那里去了?

是不是这样子的

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯