68°

Java中的抽象类

应用场景:

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

作用:

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

使用规则:

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

举例如下:

抽象类父类:

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

子类:

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("圆的周长为:"+(a2Math.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();

}

}

 

本文由【柒礼拜】发布于开源中国,原文链接:https://my.oschina.net/u/4156029/blog/3073538

全部评论: 0

    我有话说: