/*
- Abstract 的使用:
- 1抽象的
- 2、修饰类、结构、方法
- abstract修饰类,抽象类
类不可实例化
抽象类中一定有构造器,便于子类实例化时候调用
开发中, 都会提供类的子类,让子类对象实例化,完成相关操作
abstract修饰方法、抽象方法
抽象方法只有方法的声明,没有方法体
包含抽象方法的类,一定是抽象类, 反之,抽象类中可以没有抽象方法
若子类重写了父类中所有的抽象方法,则子类方可实例 化,若是子类没有重写父类的全部抽象方法,则此子类也是抽象类
abstract 不能修饰:属性、构造器等
不能修饰:私有方法、静态方法、final的方法、final类
*/
public class AbstractTest {
public static void main(String[] args) {
// 被抽象类,无法实例化
/*
* Person p1 = new Person(); p1.eat();
*/
}
}
abstract class Person {
String name;
int age;
public Person() {
// TODO Auto-generated constructor stub
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public abstract void sleep();
public void eat() {
System.out.println("人吃饭。");
}
}
class Student extends Person {
public Student(String name,int age) {
super(name,age);
}
@Override
public void sleep() {
// TODO Auto-generated method stub
System.out.println();
}
}