抽象类及抽象方法 //抽象类 public abstract class 类名{ //抽象方法 public abstract void method(); } 抽象方法交给非抽象的子类去实现(重写) 应用场景:当一个方法必须在父类中出现,但是这个方法又不好实现,就把该方法变成抽象方法,交给非抽象的子类去实现面试题: a.抽象类不能有构造方法? 抽象类可以有构造方法 b.抽象类中只能有抽象方法? 抽象类中有非抽象方法(成员方法和静态方法) c.抽象类中不可以没有抽象方法? 抽象类中可以没有抽象方法,但是毫无意义 d.如果父类是抽象类,则子类必须实现父类的抽象方法? 不一定,子类如果是抽象类,可以不实现父类的抽象方法 e.可以使用new关键字来创建抽象类对象? 不可以,创建的是匿名内部类的对象 public class Test02 { public static void main(String[] args) { //1.底层创建匿名类,继承Person类,重写eat() //2.创建匿名类的对象 //3.将匿名类对象的内存地址赋值给父类的引用 Person person = new Person() { @Override public void eat() { System.out.println("印度人喜欢吃咖喱"); } }; person.eat(); } }