在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
属性抽象了,谁来实现,怎么实现?

java中抽象方法不能使用修饰符_和_修饰
在Java中,抽象方法不能使用以下修饰符:final:抽象方法不允许被final修饰,因为final意味着该方法不能被重写,而在子类中必须实现抽象方法。native:抽象方法不能被native修饰,因为native方法需要有对应的本地实现。private:抽象方法不能被private修饰,因为它需要被子类实现,而private方法无法在子类中继承...

java中构造函数不能用哪些修饰符修饰?
java中构造函数不能使用其他修饰符进行修饰,如sataic ,final,synchronized,native,abstract等修饰符都不可以修饰构造方法。又及:构造方法虽然看起来没有返回类型,但其实他返回的是这个对象的引用,因类型固定所以不加。如果构造方法修饰符为私有,则是单例模式。java中构造方法可以使用任意一种访问修饰符...

java中有几种修饰符?
abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。4、static修饰符 static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属...

java中abstract怎么使用啊,说的详细点。举几个有代表的例子
1、abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。2、abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。...

java的抽象方法是必须有的吗?
不一定,抽象类可以没有抽象方法,但是如果一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过。java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据...

java中接口为什么不能定义成私有的方法和属性?
接口不是不能定义final,接口中的变量是public static final所修饰的(是常量)方法是public abstract所修饰的,那个答案有错 接口是对外扩展功能用的,所以只能是public (私有的写成接口有什么用,就好比你电脑的usb插槽是不是只能在外边?假如你把插槽封装到机壳里面有什么意义?)abstract就是和抽象类一...

java 里面 为什么子类继承父类的时候class前面不能加访问修饰符public...
类(class)的修饰符只能是缺省,public, abstract , final 不能是private 在继承的时候要看父类是什么样的,如果父类是final的,那就不能用public修饰子类了 ,因为不能继承该类

java中abstract是什么意思
在Java中,abstract是一个关键字,用于定义抽象类和抽象方法。抽象类是不能被实例化的类,其中至少有一个抽象方法(即定义时没有具体实现的方法)。抽象方法只是一个声明,没有具体代码实现,必须在子类中实现才能被使用。抽象类和抽象方法主要用于定义一些通用的抽象概念,而不是具体的实现细节,使得代码...

java中修饰符有哪些
外部类是相对于内部类而言的,内部类是定义在类里面的类。外部类的修饰符有:default(缺省,不写):类定义时前面未加任何修饰符,表示同一个包中可见。public:修饰类时表示该类能被项目中所有类可见 abstract:表示是抽象类 final:表示类不可以被继承 scrictpf:(java关键字) 当对一个类或接口...

abstract方法必须在abstract类中 这句话是对的还是错的?
abstract修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员,抽象方法是没有方法体的方法。1、抽象类 当一个类被声明为abstract时,这个类被称为抽象类。所谓的抽象类就是没有实例对象的类。抽象类是他的所有子类的公共属性的集合,所以抽象类的一大优点就是充分利用公共属性...

相似回答