Java中的抽象类

应用场景:java

  1. 在某些状况,某个父类只是知道其子类应该包含哪一种方法,但没法准确的知道这些子类如何实现这些方法时,就能够使用抽象类。
  2. 从多个具备相同特征的类中抽象出一个抽象类,以这个抽象类做为子类的模板,从而避免了子类设计的随意性。

做用:ide

限制规定子类必须实现某些方法,但不关注细节。测试

使用规则:spa

  1. absabstract定义抽象类
  2. absabstract定义抽象类,只要声明,不须要实现。
  3. 包含抽象方法的类就是抽象类。
  4. 抽象类中能够有普通的方法,也能够没有抽象方法。
  5. 抽象类不能直接建立,能够定义引用变量。

举例以下:设计

抽象类父类:code

package Java2_4_Practice;
/**
 * 现有Shape图形类,用Circle圆形子类,求图形周长和面积
 * @author qiang
 *
 */
public abstract class Shape {
	public abstract void perimeter(); //抽象定义计算周长的方法
	public abstract void area(); //抽象定义计算面积的方法
}

子类:input

package Java2_4_Practice;
/**
 * 现有Shape图形类,用Circle圆形子类,求图形周长和面积
 * @author qiang
 *
 */
import java.util.Scanner;

public class Circle extends Shape {
	@Override
	public void perimeter() {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		System.out.println("请输入圆形的半径:");
		float a = input.nextFloat();
		System.out.println("圆的周长为:"+(a*2*Math.PI));
	}

	@Override
	public void area() {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		System.out.println("请输入圆形的半径:");
		float a = input.nextFloat();
		System.out.println("圆的面积为:"+(a*a*Math.PI));
	}

}

测试类模板

package Java2_4_Practice;
/**
 * 现有Shape图形类,用Circle圆形子类,求图形周长和面积
 * @author qiang
 *
 */
public class Test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Shape shape1 = new Circle();
		
		shape1.perimeter();
		shape1.area();

	}

}
相关文章
相关标签/搜索