java基础-抽象类和抽象方法
1.abstract
可以修饰:类、方法
(1)修饰类:
类不能被实例化;
抽象类一定有构造器,便于子类实例化时调用;
(2)修饰方法:抽象方法
只有方法的声明,没有方法体
有抽象方法的类一定得是抽象类
子类必须重写父类的所有抽象方法才能实例化,否则也是抽象类
注意:
abstract不能用来修饰私有方法、静态方法、final方法、final的类
2.抽象类的匿名子类的对象创建
import org.w3c.dom.ls.LSOutput;import java.sql.Connection; import java.sql.SQLOutput; import java.util.Arrays;public class Main {public static void main(String[] args) {new Person(){@Overridepublic void eat() {System.out.println("吃健康的食物");}@Overridepublic void breath() {System.out.println("呼吸新鲜的空气");}}.eat();} } abstract class Person{String name;int age;public Person(){}public Person(String name, int age){this.name = name;this.age = age;}public abstract void eat();public abstract void breath();}
形式上与父类匿名对象创建相似,但是需要后接大括号进行重写抽象方法;