一.定义:用abstract修饰的类叫抽象类,用abstract修饰且只有方法声明而没有方法体的方法称为抽象方法。
注意:(1)抽象类中可以有零个或多个抽象方法,也可以有非抽象方法。
(2)抽象类可以不定义抽象方法,但有抽象方法一定是抽象类。
(3)抽象类可以派生子类。派生实体子类一定实现了抽象类的中的抽象方法,派生抽象子类可以不实现。
(4)抽象类不能实例化对象,由派生实体子类实例化抽象父类对象。
(5)抽象类能定义构造方法,但不能直接调用抽象类的构造方法实例化对象。
(6)抽象方法不能重载。
(7)abstract不能与final同时修饰一个类,abstract不能与private,stastic,final或native等同时修饰一个方法。
二.应用.
package New.Week.Study;
public class Main {
public static void main(String[] args) {
Student Tom = new Student("孙悟空",1000);
Teacher QiaZhi = new Teacher("唐僧",25);
Tom.workOn();
Tom.acquire();
QiaZhi.workOn();
QiaZhi.acquire();
}
}
package New.Week.Study;
public abstract class People {
String name;
int age;
abstract void workOn();
}
package New.Week.Study;
public class Student extends People{
Student(String name,int age){
this.name = name;
this.age = age;
}
@Override
void workOn() {
System.out.println(this.name+"学习");
}
public void acquire() {
System.out.println(this.name+"上课听讲");
}
}
package New.Week.Study;
public class Teacher extends People{
Teacher(String name,int age){
this.name = name;
this.age = age;
}
@Override
void workOn() {
System.out.println(this.name+"教学");
}
public void acquire() {
System.out.println(this.name+"认真备课");
}
}