1.使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。
2.抽象方法充当占位角色,他们的实现在子类中,抽象类不能被实例化,如果将一个类声明为abstract,就不能创建这个类的对象。
package text1;
public abstract class Person {
private String name;
public Person(String name) {
this.name=name;
}
public abstract String getDescription(); //定义一个抽象方法
public String getName() {
return name;
}
}
package text1;
public class Astudent extends Person{
private String major;
public Astudent(String name,String major) {
super(name);
this.major=major;
}
public String getDescription() {
return "a student majoring in" + major;
}
}
在父类(抽象类)中定义的 getDescription() 方法在子类中实现
Person[] people =new Person[2];
people[0]= new Astudent();
people[1]= new Astudent();
for(Person p : people)
System.out.println(p.getName()+","+p.getDescription());
如果抽象类中不定义这个抽象方法(getDescription()),则子类无法引用这个方法,因为这个数组是用Person类定义的。