我想问一下能不能不在父类中给定 半径的值,而是在子类中直接赋值。
package com.imooc.chouxiang;
public class Initail {
public static void main(String[] args) {
// TODO Auto-generated method stub
Shape one=new Rectangle();
one.r=3;
one.question();
}
}
package com.imooc.chouxiang;
public abstract class Shape {
public double r;
public abstract double question();
}
如果一个父类里面什么都没有给儿子传下去,那这个父类就没有必要存在,你可以直接写一个接口,
但是当父类里面的东西不全的时候 但你又必须得继承,这样你可以用继承然后子类去补全那些你需要的东西。
个人理解
我之前也是你这样编写的,但是我发现 public void circumference() 这个方法并不能输出,void 返回值为空,应该用double 返回值吧 再接上return。 也有可能是我之前父类中定义 r , s , l 关键字 弄错了加了 abstract 关键字。
可以啊。这是我的代码。。。欢迎指导。。。随便乱写的。。。
package abstract练习题; //图形类(父类) public abstract class Shaoe { int a,b,r; public abstract void circumference(); public abstract void area(); } ==========分割线=============== package abstract练习题; //圆形类 public class Circle extends Shaoe { int r=10; int d=2*r; double π=Math.PI;//π值 double r2=Math.pow(r, 2);//平方 | Math.pow(a,b) 其中a是底数b是指数 @Override public void circumference() { // TODO Auto-generated method stub System.out.println("圆形周长:"+(d*π)); } @Override public void area() { // TODO Auto-generated method stub System.out.println("圆形的面积:"+(π*r2)); } } ==========分割线=============== package abstract练习题; //矩形类 public class Rectangle extends Shaoe { int a=5,b=7; @Override public void circumference() { // TODO Auto-generated method stub System.out.println("矩形周长:"+(2*a+2*b)); } @Override public void area() { // TODO Auto-generated method stub System.out.println("矩形面积:"+(a*b)); } } ==========分割线=============== package abstract练习题; /** * 现有Shape图形类,用Rectangle矩形和Circle圆形子类,求图形的周长和面积 * @author 曼陀罗华灬黎 * 2017年6月2日上午10:51:31 */ public class Initial { public static void main(String[] args) { // TODO Auto-generated method stub Rectangle q=new Rectangle(); Circle w=new Circle(); q.circumference(); q.area(); System.out.println("=========================="); w.circumference(); w.area(); } }