含有抽象方法的类,抽象方法即用abstract修饰的方法,即父类只知道其子类应该含有该方法,但无法知道子类如何实现这些方法
抽象类限制规定子类必须实现某些方法,但不关注实现细节
抽象类中可以包含普通方法(在Java中仍然为虚方法),也可以没有抽象方法
抽象类无法用于实例化对象,但可以定义引用变量,以用于指定子类对象
参考代码:
抽象类Shape
package com.hao.practice; public abstract class Shape {
public abstract float perimeter();
public abstract float area();
}
子类Circle
package com.hao.practice; public class Circle extends Shape { static final float PI = 3.14f;
float r = 0.0f; /*
* 默认构造函数
*/
public Circle() {
super();
} /*
* 带参构造函数
* @param r
*/
public Circle(float r) {
super();
this.r = r;
} /*
* (非 Javadoc)
* @see com.hao.practice.Shape#perimeter()
*/
@Override
public float perimeter() {
// TODO 自动生成的方法存根
return 2*PI*r;
} @Override
public float area() {
// TODO 自动生成的方法存根
return PI*r*r;
} }
子类Rectangle
package com.hao.practice; public class Rectangle extends Shape { float a = 0.0f;
float b = 0.0f; /**
* 默认构造函数
*/
public Rectangle() {
super();
} /**
* 拷贝构造函数
* @param a
* @param b
*/
public Rectangle(float a, float b) {
super();
this.a = a;
this.b = b;
} @Override
public float perimeter() {
// TODO 自动生成的方法存根
return 2*a*b;
} @Override
public float area() {
// TODO 自动生成的方法存根
return a*b;
} }