栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中的抽象方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的抽象方法

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。

在 Java 中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

如何定义抽象类:

 

在访问修饰符后添加一个abstract关键字就可以将该类定义为抽象类。

如何定义抽象方法:

 

抽象方法和抽象类的定义很相似,都是在访问修饰符后添加一个abstract关键字。我们要注意的是abstract只能用在普通方法,不能使用在被static关键字修饰的方法和构造方法中。

了解抽象抽象方法:

抽象方法是定义在抽象类中,它只能出现在抽象类中,当在抽象类中我们也可以定义非抽象方法。

当一个非抽象类去重写一个抽象类时,它必须去重写这个抽象父类中的所有抽象方法。所有抽象方法的访问修饰符不能被 private 修饰,因为在子类重写抽象类中的抽象方法时,需要进行访问。如果声明了private子类就不能对抽象父类中的抽象方法进行重写了。

抽象方法没有方法体。

例:在非抽象类中重写抽象类

抽象类:

 

子类:

 

了解抽象类和接口的同和不同

相同点:

可以定义多个抽象方法,在非抽象子类重写抽象方法和实现接口时,必须要在子类中重写抽象方法。

接口和抽象类都不能被实例化。

不同点:

抽象类可以存在构造方法,而接口中不能定义构造方法。

抽象类可以定义非抽象方法,而接口中的方法都是抽象方法。

抽象类中可以定义各种类型的成员变量,而在接口中声明的变量只能是常量。

抽象类只支持单继承,接口支持多继承。

抽象类中可以存在有方法体的方法,而接口的方法都是抽象方法,不能有方法体。

接口中都方法都是共有的。

回顾我们的抽象类:

抽象类不能被实例化,如果被实例化,会在编译阶段就报错。只有继承抽象类的非抽象子类能被实例化。

抽象类中的方法可以不是抽象方法,但抽象方法只能定义在抽象类之中。

构造方法和被static关键字修饰的方法不能被abstract关键字修饰。

抽象类的抽象方法没有方法体,就是没有实现功能的具体方法。

一个类继承了一个抽象类,如果这个类也是抽象类,那么它就可以不去重写继承抽象类的抽象方法。如果是其他类就必须要进行抽象。

抽象类中的抽象方法不能是被private访问修饰符修饰的,否则子类不能对其进行重写。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号