问答详情
源自:10-3 Java 中的抽象类

有关抽象类的问题

 我想问一下能不能不在父类中给定 半径的值,而是在子类中直接赋值。

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();

}





提问者:非我所依兮 2017-06-04 21:34

个回答

  • 温柔只给意中人_
    2017-06-06 14:51:15

    如果一个父类里面什么都没有给儿子传下去,那这个父类就没有必要存在,你可以直接写一个接口,

    但是当父类里面的东西不全的时候 但你又必须得继承,这样你可以用继承然后子类去补全那些你需要的东西。

    个人理解

  • 非我所依兮
    2017-06-05 20:33:12

      我之前也是你这样编写的,但是我发现 public void circumference()  这个方法并不能输出,void 返回值为空,应该用double 返回值吧 再接上return。 也有可能是我之前父类中定义 r , s , l 关键字 弄错了加了 abstract 关键字。 

  • 浮尘落尽繁华梦
    2017-06-05 02:03:04

    可以啊。这是我的代码。。。欢迎指导。。。随便乱写的。。。

    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();
    	}
    
    }