1 抽象类
1.1 定义抽象类
abstract class shap {
public enum Color ( red, bule) ;
protected Coloe lineColor;
protected void setColor ( Color lineColor) {
this . lineClolor= lineColor;
}
protected abstract void draw ( ) ;
protected abstract double getArea ( ) ;
}
class Circle extends Shap {
public static final double PI = 3.1415926 ;
private double radius;
Circle ( ) { }
@override
public void draw ( ) {
System. out. println ( "画图" ) ;
}
@override
public double getArea ( ) {
return PI* ratius* radius;
}
}
1.2 抽象类注意事项
abstract 声明,不能用来创建对象,但可以用来声明引用。Shap a = null;
抽象类中使用 abstract 声明的抽象方法作为成员。这些方法只有声明,没有实现(方法体)。抽象类中可以没有抽象的方法。 实例类必须将父类中抽象的方法全部重新定义。如果没有完全实现父类的抽象方法,该子类也必须定义为抽象类。 abstract 不能和 final 连用,抽象方法和非内部类的抽象类不能用private修饰。 抽象方法和非内部抽象类不能用 static 修饰 抽象类中定义构造器必须是非抽象的
2 接口
2.1 定义接口
interface IArea {
double PI = 3.1415926 ;
double getArea ( ) ;
}
interface IDraw {
public abstract void draw ( ) ;
}
2.2 接口实现类
public class Circle implements IArea {
private double radius;
Circle ( ) { }
Circle ( double radius) {
this . radius = radius;
}
@override
public double getArea ( ) {
return PI* radius* radius;
}
}
public class Circle implements IArea , IDraw{
private double radius;
Circle ( ) { }
Circle ( double radius) {
this . radius = radius;
}
@override
public double getArea ( ) {
return PI* radius* radius;
}
@override
public void draw ( ) {
System. out. println ( "画图" ) ;
}
}
public class Circle extends Shap implements IArea , IDraw{
private double radius;
Circle ( ) { }
Circle ( double radius) {
this . radius = radius;
}
@override
public double getArea ( ) {
return PI* radius* radius;
}
@override
public void draw ( ) {
System. out. println ( "画图" ) ;
}
}
2.3 接口规范
接口用interface引出, 其前可以使用static, public 接口所有方法被隐式声明为abstract 和 public 接口中没有构造器 如果接口的实现类不能全部实现接口中的方法,就必须将其定义为抽象类 接口可以建立继承关系,形成复合类
interface IArea {
double PI = 3.1415926 ;
double getArea ( ) ;
}
interface IDraw {
public abstract void draw ( ) ;
}
interface ICalcuDraw extends IArea , IDraw{
void Coloring ( ) ;
}