将Square类继承到circle类中

时间:2017-01-19 19:30:41

标签: java inheritance

我有一个方形类,我想创建一个扩展和继承所有方形类属性的圆类...如何创建一个圆类来做这个。

方形类具有绘制,颜色,下降和大小属性。如何让圆类从方形类

继承这些东西

方形等级

$scope.setSomeVar = function(item)
{
    $scope.someVar = item.count;
}

3 个答案:

答案 0 :(得分:0)

如果你想拥有一个子类,只需要A扩展B,其中B是超类。但是如果我是你,我会做类似的事情:

public abstract class Shape{
    protected int locX;
    protected int locY;
}

public class Square extends Shape{
    //properties of Square
}

public class Circle extends Shape{
    //properties of Circle
}

甚至没有任何继承......

public abstract class ShapeProperties{
    protected int locX;
    protected int locY;
    //and any other members
}

public class Square{
    ShapeProperties sp;
}

public class Circle{
    ShapeProperties sp;
}

或..

public interface Positionable{
    public void getLocX();
    public void getLocY();
}

public class Circle implements Positionable{
    //properties of Circle

    @Override
    public int getLocX(){

    }    

    @Override
    public int getLocY(){

    }  

    public Rectangle getBounds(){
        return new Rectangle(getLocX(), getLocY(), size, size);
    }
}

如果您计划将Circle扩展为Square以获取圆形对象的边界(或命中框)。你可以写一个getBounds方法:

public class Circle{
    //properties of Circle

    public Rectangle getBounds(){
        return new Rectangle(locX, locY, size, size);
    }
}

答案 1 :(得分:0)

我认为你要做的是错误的做法。

如果你想为Square和Circle提供相同的属性,你应该创建一个名为Shape的接口,它具有你想要实现的属性,然后你只需要执行public class Square implements Shapepublic class Circle implements Shape然后实现Square和Circle中的属性。

如果你只需要在所有形状上实现一个实现,那么除了创建上面提到的接口之外,你还要创建一个抽象类ShapeBase,你的类看起来像public class Square extends ShapeBase implements Shapepublic class Circle extends ShapeBase implements Shape您的通用实现将在ShapeBase类中完成,任何特定的实现都将在Square和Circle中完成。

答案 2 :(得分:-1)

您应该查看一些Java教程。第一个Google Result给了我:https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

你想到这个吗?

public class Circle extends Square {
}

然后,Square中的每个公共/受保护(也可能是包)方法和属性也可以在Circle中使用。