我有一个方形类,我想创建一个扩展和继承所有方形类属性的圆类...如何创建一个圆类来做这个。
方形类具有绘制,颜色,下降和大小属性。如何让圆类从方形类
继承这些东西方形等级
$scope.setSomeVar = function(item)
{
$scope.someVar = item.count;
}
答案 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 Shape
和public class Circle implements Shape
然后实现Square和Circle中的属性。
如果你只需要在所有形状上实现一个实现,那么除了创建上面提到的接口之外,你还要创建一个抽象类ShapeBase,你的类看起来像public class Square extends ShapeBase implements Shape
和public 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
中使用。