JAVA 学习笔记——抽象类

 JAVA 学习笔记——抽象类_第1张图片

概念:

当定义一个类时,常常需要定义一些成员方法来描述类的行为特征,但有时这些方法的实现方式是无法确定的。

例如,前面在定义 Animal 类时,walk()方法用于描述动物的行走行为,但是针对不同的动物,其行走行为是不同的,因此在 walk()方法中无法准确描述动物的行走行为。

针对上面描述的情况,Java 提供了抽象方法。

格式:

抽象方法是使用 abstract 关键字修饰的成员方法,其在定义时只给出方法名,不需要实现方法体。抽象方法的定义格式如下:

abstract void 方法名称(参数);

当一个类包含了抽象方法,该类必须是抽象类。抽象类和抽象方法一样,必须使用abstract 关键字进行修饰。抽象类的定义格式如下:

abstract class 抽象类名称 {

  访问权限 返回值类型 方法名称(参数){      //普通方法,有方法体的实现
   return[返回值]; 
   }

   访问权限 abstract 返回值类型 抽象方法名称(参数);//抽象方法,无方法体的实现

}

抽象类规则:

  1. 包含一个以上抽象方法的类必须是抽象类
  2. 抽象类和抽象方法都需要使用abstract 关键字 
  3. 抽象方法只需要声明而不需要实现
  4. 如果一个类继承了抽象类,那么该子类必须实现抽象类中的全部抽象方法

实例:

  • 创建一个“shape”抽象类,该抽象类包含表示形状的string类型的成员变量namey,和两个抽象方法,分别为求形状周长的抽象方法perimeter0,求形状面积的抽象方法area()
  • 创建两个类,一个为正方形类“Square”,正方形类有一各成员变量:doublelength,一个为圆类Cirde”,圆类有一各成员变量:double radius,要求继承上面的抽象类“shape”,并实现“shape”中的两个抽象方法 
package 类;

abstract class shape {
	String name;
	abstract void perimater();
	abstract void area();


	public static void main (String[]args) {
		Square s = new Square();
		s.length = 1;
		s.perimater();
		s.area();
		Circle x = new Circle();
		x.radius = 1;
		x.perimater();
		x.area();
	}
}

class Square extends shape{
	double length;
	void perimater() {
		System.out.println(""+4*length);
	}
	void area() {
		System.out.println(""+length*length);		
	}
}

class Circle extends shape{
	double radius;

	void perimater() {
		System.out.println(""+3.14*2*radius);
	}

	void area() {
		System.out.println(""+3.14*radius*radius);
	}
	
}

代码分析:

JAVA 学习笔记——抽象类_第2张图片 


JAVA 学习笔记——抽象类_第3张图片 

你可能感兴趣的:(JAVA,JAVA学习笔记,java,类,抽象类,继承类)