抽象:笼统、模糊、看不懂、不具体
如果这个类中有抽象的方法,则这个类一定是抽象类。但抽象类里面可以有非抽象的方法
特点:
1、方法只有声明没有实现时,该方法就为抽象方法,需要abstract修饰
抽象方法必须定义在抽象类中,该类也必须被abstract修饰
2、抽象类不能被实例化(创建对象),因为调用抽象方法没意义
3、抽象类必须由其子类覆盖了所有的抽象方法后,该子类才可以被实例化。否则,该子类还是抽象类(因为该类里还有抽象方法)
细节:
1、抽象类中有构造函数吗?
有,用于给子类对象进行初始化
2、抽象类可以不定义抽象方法吗?
可以,很少见,目的是不让该类创建对象
通常这个类中的方法有方法体,但没有内容
3、抽象类关键字不可以和哪些关键字共存?
private不可以(私有了还覆盖啥?)
static不可以(类名调个空方法?)
final不可以
4、抽象类和一般类的区别
同: 抽象类和一般类都是用来描述事物,都在内部定义了成员
不同:1、一般类有足够信息描述事物,抽象类信息不足。
2、一般类不能定义抽象方法只能定义非抽象方法,抽象类可以定义抽象方法和非抽象
3、一般类可以被实例化,抽象类不能被实例化
5、抽象类一定是个父类吗
是的,因为需要子类覆盖其方法后才可以对子类实例化