abstract:抽象的
abstract class Person{}(不可被实例,只可以被继承):可以用来修饰的结构:类、方法
abstract修饰类:抽象类
- 此类不能实例化
- 抽象类中一定有构造器,便于子类实例化时调用(涉及,子类对象实例化的全过程)
- 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作
abstract修饰方法,抽象方法
- 抽象方法只有方法的声明,没有方法体
- 包含抽象方法的类,一定是一个抽象类。反之抽象类中可以没有抽象方法的
- 若子类重写父类中所有的抽象方法后,此子类方可实例化
- 若子类没有重写父类中的所有抽象方法,子类也应该抽象类
注意点: abstract不能用来修饰private方法、static方法、final方法、final的类。不能修饰属性、构造器
package com.myobjectoriented3.nonworking;
public class AbstractTest {
public static void main(String[] args) {
Person32 p=new Man();
p.eat();//男人要吃肉
}
}
abstract class Person32{
String name;
int age;
abstract public void eat();
abstract public void sleep();
}
class Man extends Person32{
public void eat() {
System.out.println("男人要吃肉");}
public void sleep() {
System.out.println("男人要睡好");
}
}