在Java中,为什么abstract不能修饰属性

为什么abstract只能修饰和成员方法和类,为什么不能修饰属性?

abstract是抽象的意思,在java中,规定只能修饰类或者方法,所以不能修饰属性。
(1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型。抽象类就相当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
(2)abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明而没有实现,需要子类继承实现(覆盖)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-16
被abstract修饰的内容都是暂未被实现的,比如类、方法。
属性之所以不能被abstract修饰,是因为属性不存在"尚未被实现"的状态。
比如你可能会联想到int age; 或是String name; 但可惜的是,在申明变量时,int会默认给age赋予初始值0,String会默认给name赋予初始值""。因此属性达不到"尚未被实现的状态",从而不能被abstract修饰。本回答被网友采纳
第2个回答  推荐于2017-10-11
修饰类是标识这个类为抽象类,可以有抽象方法,抽象方法由子类去实现
修饰方法是标识该方法为抽象方法,该方法由子类去实现,不可以有方法体
属性没必要用abstract修饰,因为属性不用实现,非私有属性可被继承本回答被提问者采纳
第3个回答  2013-07-06
属性不能被继承不能被实现。abstract只能修饰抽象的东西,即未被实现的东西追问

那abstract修饰方法时也是不能为被继承?竟然不能被继承了那为什么子类会被强迫重写这个方法?不可以用的时候才重写,不用的时候就不重写了,但是这样怎么会编译错误?

追答

所以你实现了你的父类,一定要去重写这些抽象方法,不然会编译通不过

第4个回答  2013-07-06
属性抽象了,谁来实现,怎么实现?