💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 抽象类 抽象方法 ### 关键字:abstract 在一个父类中,封装子类都共同有的方法,但是方法体内容内容对我们没有多大意义,因为子类都会去重写父类中的方法,此时不写方法体,能够简化我们的代码,这里不写方法体的方法称为抽象方法,有抽象方法的类我们称为抽象类。抽象类和抽象方法用关键字abstract来表示 ### 抽象类的特点: 1. 抽象类不能实例化 (new) 2. 抽象方法没有方法体({}) 权限修饰符 abstract 返回值类型 方法名 ( ); ``` public abstract void eat(); ``` 3. 有抽象方法的类,一定是抽象类 4. 抽象类中可以没有抽象方法 5. 子类继承抽象类,如果有抽象方法一定要实现抽象方法,如果子类也是 一个抽象类,可以不重写父类的抽象方法 >[success] 思考:抽象类可以有构造函数吗? 可以有 ### abstract 和哪些关键字不能共存? 1. final:final 修饰的方法不能被重写(abstract 需要重写) 2. static:static 修饰的方法可以直接通过类名方法,而抽象方法没有方法体,调用无任何意义(abstract ) 3. private:private 修饰的变量只能被自己访问,但是抽象类不能创建对象