抽象(abstract):
当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。例如:定义了“Pet”父类,其中“Pet”类名下有color(颜色)、name(名字)、age(年龄)、health(健康值)等属性,但是动物play(玩耍)的方式没有明确,此时就可以将动物play(玩耍)定义成抽象方法。所以,抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。
抽象类的定义
关键字:abstract
package com.sl.abstractClass.biz;
/**
* 抽象类
* 关键字:abstract
* 抽象类的类内既可以有抽象方法,也可以有非抽象方法
* 抽象类可以继承抽象类(抽象类的子类也可以是抽象类)
* */
public abstract class Pet {
private String color;
private String name;
private double age;
private int health;
}
抽象方法
/**
* 抽象方法
* ------------给面向接口编程做准备
* 1、必须写在抽象类里面
* 2、抽象方法不能有实现体
*/
public abstract void play ();
子类必须强制实现父类的抽象方法
package com.sl.abstractClass.biz;
public class Dog extends Pet {
/**
* 强制子类必须实现父类的抽象方法
* (除非子类自身也是抽象类)
*
* */
@Override
public void play() {
}
}
网友评论