大家好,今天小编关注到一个比较有意思的话题,就是关于java语言abstract的问题,于是小编就整理了3个相关介绍Java语言abstract的解答,让我们一起看看吧。
JAVA中抽象方法不能为private,final或者static,为什么?细细说明,或给个例子?
两种角度看。从语法的角度看,就是禁止抽象的 static 方法。从设计的角度看,允许抽象类有抽象的 static 方法没有意义。
1. static 方法不是属于任何一个具体对象的,它不表示对象的行为,而抽象类是用于抽象属于此类对象的行为,而不是用来抽象类本身。
2. java中需要静态方法,主要原因是函数只能挂在类下面,像kotlin这种语言,因为函数可以和类平级,所以干脆禁止了static 成员。
java中抽象类中一定要有抽象方法么?
重写是发生在继承当中,子类将从父类中继承的某些方法重新构造的一个过程,这个方法的前提是必须与父类的这个方法的返回值类型,参数类型,参数个数,参数顺序完全一样,比如说父类中有个方法是eat而这个方法的输出是"我想吃水果",子类想引用父类中的eat方法,并且想让它变得很具体,那么输出就可以改为“我想吃苹果”等等,总结一下就是,子类想引用父类方法不想做出改变那么就直接super调用,但是想让改方法在子类中变得更加具体,就必须重写。
抽象abstract:字面意思就可以看出他是不具体的一个东西,所以可以理解为它是一种规则,如果你知道interface那么就能更好的理解了,因为接口就是抽象到极致的特殊抽象类。abstract不仅可以修饰类也可以修饰方法,修饰类的时候它就是抽象类,类中可以有抽象方法也可以不包含抽象方法,主要是它是不被允许自己调用自己的构造方法的,只能被子类继承,子类去调用它里面的方法,而且如果抽象类中有抽象方法,那么子类必须具体实现这个方法才可以继承,或者子类也是一个抽象类才可以继承。当abstract修饰方法的时候就是抽象方法了,一个类中有抽象方法,那么这个类必定是抽象类,记住一点抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类,而且抽象方法是没有方法体的,就是没有{}这个括号
abstract修饰的方法特点?
abstract并不是C++中的关键字。而是Java语言的关键字。
abstract(抽象)修饰符,可以修饰类和方法
1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。
注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。
abstract修饰符在修饰类时必须放在类名前。
abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。
到此,以上就是小编对于java语言abstract的问题就介绍到这了,希望介绍关于java语言abstract的3点解答对大家有用。