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

正在回答

5 回答

package Shape;

public abstract class Shape {
  public abstract void Girth();
  public abstract void Area();
  
  public static void main(String args[]){
	  Shape r = new Rectangle(5,4);
	  r.Girth();
	  r.Area();
	  Shape c = new Circle(5);
	  c.Girth();
	  c.Area();
  }
}
package Shape;

public abstract class Shape {
  public abstract void Girth();
  public abstract void Area();
  
  public static void main(String args[]){
	  Shape r = new Rectangle(5,4);
	  r.Girth();
	  r.Area();
	  Shape c = new Circle(5);
	  c.Girth();
	  c.Area();
  }
}
package Shape;

public class Circle extends Shape {
	int radius;
	public Circle(int radius){
		this.radius = radius;
	}

	public void Girth() {
		double Girth = radius * 2 * 3.14;
		System.out.println("圆形的周长为:" + Girth);
	}

	public void Area() {
		double Area = radius * radius * 3.14;
		System.out.println("圆形的面积为:" + Area);
	}
}


1 回复 有任何疑惑可以回复我~
#1

千修罗

这个可以直接复制运行试试。
2016-11-03 回复 有任何疑惑可以回复我~
#2

慕仔7135344 提问者

非常感谢!
2016-11-09 回复 有任何疑惑可以回复我~


class Text //测试类

{

public static void main(String[] args) 

{

Shape s1 = new Rectangle1();

Shape s2 = new Circle();

s1.girth(3,4);

s1.size(5,2);

s2.girth(6.0);

s2.size(10.0);

}

}

abstract class Shape //父类

{

public abstract void girth(int a,int b);

public abstract void size(int a,int b);

public abstract void girth(double r);

public abstract void size(double r);

}

class Rectangle1 extends Shape//子类1

{

public void girth(int a,int b)

{

int gir;

gir = (a + b)*2;

System.out.println("矩形的周长为:" + gir );

}

public void size(int a,int b)

{

int si;

si = a * b;

System.out.println("矩形的面积为:" + si);

}

public void girth(double r){}

public void size(double r){}

}

class Circle extends Shape//子类2

{

double pai = 3.1415926;

double r;

public void girth(double r)

{

double gir = pai *r;

System.out.println("圆的周长为:" + gir);

}

public void size(double r)

{

double si;

si = pai * (r *r)/4;

System.out.println("圆的面积为:" + si);

}

public void girth(int a,int b){}

public void size(int a,int b){}

}


0 回复 有任何疑惑可以回复我~

public abstract class Figure {

public abstract void perimeter(double a,double b);

public abstract void area(double a , double b);

}

抽象方法是可以带参数的

0 回复 有任何疑惑可以回复我~

我用抽象写不出来啊,一直报错 类不是抽象的,并且未覆盖抽象方法,最后只能这样写了

public class Text //测试类

{

public static void main(String[] args) 

{

Shape s1 = new Rectangle1();

Shape s2 = new Circle();

s1.zhouChang(3,4);

s1.squareMeasure(5,2);

s2.zhouChang(6.0);

s2.squareMeasure(10.0);

}

}


class Shape   //父类

{

public void zhouChang(int a,int b){}

public void squareMeasure(int a,int b){}

public void zhouChang(double r){}

public void squareMeasure(double r){}

}


class Rectangle1 extends Shape  //矩形

{

public void  zhouChang(int a,int b)

{

int zc;

zc = (a + b)*2;

System.out.println("矩形的周长为:" + zc );

}

public void squareMeasure(int a,int b)

{

int sm;

sm = a * b;

System.out.println("矩形的面积为:" + sm);

}

}


class Circle extends Shape //圆形

{

double pai = 3.1415926;

public void zhouChang(double r)

{

double zc = pai *r;

System.out.println("圆的周长为:" + zc);

}

public void squareMeasure(double r)

{

double sm;

sm = pai * (r *r)/4;

System.out.println("圆的面积为:" + sm);

}

}


0 回复 有任何疑惑可以回复我~
#1

talent85012016

你的父类就可以写成抽象类啊
2016-11-24 回复 有任何疑惑可以回复我~
#2

TTTi 回复 talent85012016

我试过,但是一直提示 类不是抽象的,并且未覆盖抽象方法。不知道怎么处理。
2016-11-24 回复 有任何疑惑可以回复我~
#3

TTTi 回复 talent85012016

刚找到原因了,因为父类中抽象方法定义了四个,但是子类我只有写两个方法进去,所以才报错,疏忽大意了。
2016-11-24 回复 有任何疑惑可以回复我~
#4

talent85012016 回复 TTTi

加油!
2016-11-29 回复 有任何疑惑可以回复我~
查看1条回复
package com.Shape;
public abstract class Shape {
 public abstract void girth();
 public abstract void area();
}

package com.Shape;
public class Rentanle extends Shape {

 public void girth() {
  // TODO Auto-generated method stub
     System.out.println("长方形的周长=2*(长+宽)");
 }
 
 public void area() {
  // TODO Auto-generated method stub
      System.out.println("长方形的面积=长*宽");
 }
}

package com.Shape;
public class Circle extends Shape {
 
 public void girth() {
  // TODO Auto-generated method stub
    System.out.println("圆形的周长=π*直径");
 }
 
 public void area() {
  // TODO Auto-generated method stub
    System.out.println("圆形的面积=π*r*r");
 }
}

package com.Shape;
public class Initial {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
    Shape s1 =new Rentanle();
  
    s1.area();
    s1.girth();
     Shape s2=new Circle();
     s2.area();
     s2.girth();
   
    
      
 }
}

亲测可用,好像有个单词写错了,但是懒得改了。给你参考一下吧,交流一下。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530629    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

l练习题代码

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信