比较预算符==用来比较两个基本数据类型的值是否相等,或者判断两个对象是否具有相同的引用。如果想让equals方法判断两个对象是否具有相同的内容,可以在定义这些对象的类时,覆盖类中的equals方法。
在继承的层次结构中,随着每个新子类的出现,类会变得越来越明确和具体。如果从一个子类追溯到父类,类就会变得更通用、更加不明确。类的设计应该确保父类包含它的子类的共同特征。有时候,一个父类设计得非常抽象,以至于它都没有任何具体的实例。这样的类称为抽象类(abstract class)。
GeometericObject类定义成Circle;类和Rectangle类的父类。GeometricObject类模拟了几何对象的共同特征。Circle类和Rectangle类都包含分别计算圆和矩形的面积和周长的方法getArea()和getPerimeter()。因为可以计算所有几何对象的面积和周长,所以最好在GeometricObject类中定义getArea()和getPerimeter()方法。但是,这些方法不能在GeometricObject类中实现,因为他们的实现取决于几何对象的具体类型。这样的方法称为抽象方法(abstract method),在方法头中使用abstract修饰符表示。在GeometricObject类中定义了这写方法后,GemoetricObject就称为一个抽象类。在类头使用abstract修饰符表示该类为抽象类。
public abstract class GeometricObject {
private String color = “white”;
private boolean filled;
private java.util.Date dateCreated;
/* Construct a default geometric object /
protected GeometricObject() {
dateCreated = new java.util.Date();
}
/* Construct a geometric object with color and filled value /
protected GeometricObject(String color,boolean filled) {
dateCreated = new java.util.Date();
this.color = color ;
this.filled = filled;
}
/* Return color /
public String getColor() {
return color;
}
/*Set a new color /
public void setColor(String color) {
this.color = color ;
}