非我所依兮
2017-06-04 21:34
我想问一下能不能不在父类中给定 半径的值,而是在子类中直接赋值。
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();
}
}Java入门第二季
531292 学习 · 6327 问题
相似问题