抽象类的作用是什么?为什么不能被实例化?
抽象方法不能被实例化,抽象类中的方法都是抽象的,都没有方法体 ,只有个方法声明 你创建一个对象,调用它有什么用呢?
它的作用就是产生子类的同时给于子类一些特定的属性和方法.
举个现实生活的例子:
如果你的程序里面需要用到苹果和梨这2个类..那么你可以分别给出这2个类
但是你会发现这2个类里面有共同的属性和方法(属性: 都有核.. 方法: 都需要削皮吃...)那么你可以建立抽象类 "水果" 基类把这些共同的东西都定义在那里. 那么你的2个子类就只需要实其他的方法了(味道, 价格,颜色...)
既然不能被实例化为什么还提供供子类调用的构造方法?
如果不指定参数,系统默认调用的父类无参的构造方法,super();
指定参数,就调用有参的构造方法,来对从父类那里继承的属性进行初始化,super(Object lock);
|