6 回答
TA贡献9条经验 获得超4个赞
首先,你第二个代码的方法没有对象去调用它,它怎么会去执行那个方法里面的语句呢。然后,当你要去实例化对象的时候,也只能实例化这些抽象方法的子类(这个子类不是抽象类来的),抽象类是不能直接实例化的,所以你的代码需要这样子:
package xuexi;
public abstract class Shape {
public int a=20;
public int b=30;
public int r=4;
final double PI=3.14;
}
package xuexi;
abstract class Rectangle extends Shape {
public void Zhouchang()
{
System.out.println("周长为:" + (a + b) * 2);
}
}
// 必须有普通类去继承抽象类,抽象类才能被实例化
class NormalZiLei extends Rectangle {
}
public class WoCaiShiZhenZhengDeLei {
public static void main(String[] args) {
Rectangle rectangle = new NormalZiLei();
rectangle.Zhouchang();
}
}
TA贡献6条经验 获得超5个赞
亲爱的,类前面应该没有public吧?我反正从来没遇到过,还有就是父类是抽象类,子类也是abstruct抽象类,抽象类中的方法和属性要在非抽象类的子类中去实现哦,所以你可以把子类的abstruct去掉,就可以了哦!
TA贡献11条经验 获得超0个赞
package xuexi;
public class Test {
public static void main(String[] args) {
zhouChang p1=new zhouChang();
mianJi p2=new mianJi();
yuanZhouChang p3=new yuanZhouChang();
yuanMIanJi p4=new yuanMianJI();
p1.zhouChang();
p2.mianJi();
Circle p2=new Circle();
p3.yuanMianJi();
p4.yuanZhouChang();
}
}
TA贡献11条经验 获得超0个赞
package xuexi;
public abstract class Circle extends Shape {
public void Mianji(){
System.out.println("面积为:"+(a*b));
}
}
这个又不报错。。。
添加回答
举报