网站开发 兼职挣钱吗企业推广策划书
概念:
当定义一个类时,常常需要定义一些成员方法来描述类的行为特征,但有时这些方法的实现方式是无法确定的。
例如,前面在定义 Animal 类时,walk()方法用于描述动物的行走行为,但是针对不同的动物,其行走行为是不同的,因此在 walk()方法中无法准确描述动物的行走行为。
针对上面描述的情况,Java 提供了抽象方法。
格式:
抽象方法是使用 abstract 关键字修饰的成员方法,其在定义时只给出方法名,不需要实现方法体。抽象方法的定义格式如下:
abstract void 方法名称(参数);
当一个类包含了抽象方法,该类必须是抽象类。抽象类和抽象方法一样,必须使用abstract 关键字进行修饰。抽象类的定义格式如下:
abstract class 抽象类名称 {访问权限 返回值类型 方法名称(参数){ //普通方法,有方法体的实现return[返回值]; }访问权限 abstract 返回值类型 抽象方法名称(参数);//抽象方法,无方法体的实现}
抽象类规则:
- 包含一个以上抽象方法的类必须是抽象类
- 抽象类和抽象方法都需要使用abstract 关键字
- 抽象方法只需要声明而不需要实现
- 如果一个类继承了抽象类,那么该子类必须实现抽象类中的全部抽象方法
实例:
- 创建一个“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);}}
代码分析: