abstract: 抽象的
* 1.可以用来修饰类、方法
*
* 2.abstract修饰的类叫做:抽象类:
* 2.1 抽象类不可以实例化
* 2.2 抽象类中不一定非得存在抽象方法。
* 2.3 子类继承抽象类后,重写所有的抽象方法,方可实例化
* 2.4 如果子类没有重写所有的抽象方法,则此类仍未抽象类,还得用abstract修饰
* 2.5 如果子类想实例化的话,需要将直接父类和间接父类里的所有抽象方法重写。
*
* 3.abstract修饰的方法叫做:抽象方法
* 3.1 抽象方法没有方法体,需要用abstract修饰
* 3.2 抽象方法所在的类一定是抽象类
*
* 4.抽象类可以定义构造器!
* 5.不能用abstract修饰属性、私有方法、构造器、静态方法、final的方法。
*/
public class TestPerson1 {
public static void main(String[] args) {
//Person1 p1 = new Person1();
Student s1 = new Student();
s1.work();
s1.talk();
//Worker w = new Worker();
//扩展知识
Creator c = new Creator(){
public void breath(){
System.out.println("呼吸");
}
};
Worker w1 = new Worker(){
public void work(){
System.out.println("工人工作");
}
public void breath(){
System.out.println("工人呼吸");
}
};
}
}
abstract class Creator{
public abstract void breath();
}
abstract class Person1 extends Creator{
public void eat(){
System.out.println("人吃饭");
}
//抽象方法
public abstract void talk();
public abstract void work();
}
class Student extends Person1{
public void talk(){
System.out.println("学生讨论问题");
}
public void work(){
System.out.println("学生学习");
}
public void breath(){
System.out.println("学生呼吸雾霾的空气");
}
}
abstract class Worker extends Person1{
public void talk(){
System.out.println("工人讨论技术问题");
}
} |
|