起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > 关于JAVA面试中的抽象类问题(收藏)

关于JAVA面试中的抽象类问题(收藏)

时间:2021-07-29 15:17:41来源:Java开发培训网 作者:Java开发教程网 已有: 名学员访问该课程

前言: 1、概述 (1)只给出方法定义而不具体实现的方法被称为抽象方法,抽象方法是没有方法体的,在代码的表达上就是没

1、概述

(1)只给出方法定义而不具体实现的方法被称为抽象方法,抽象方法是没有方法体的,在代码的表达上就是没有“{}”。使用 abstract 修饰符来表示抽象方法和抽象类。

(2)abstract修饰符表示所修饰的类没有完全实现,还不能实例化。如果在类的方法声明中使用abstract修饰符,表明该方法是一个抽象方法,它需要在子类实现。如果一个类包含抽象方法,则这个类也是抽象类,必须使用abstract修饰符,并且不能实例化。

(3)注意,抽象类除了包含抽象方法外,还可以包含具体的变量和具体的方法。类即使不包含抽象方法,也可以被声明为抽象类,防止被实例化。

2、抽象类特点

(1)抽象类不能实例化,即不能对其用new运算符;

(2) 类中如果有一个或多个abstract方法,则该类必须声明为abstract;

(3)抽象类中的方法不一定都是abstract方法,它还可以包含一个或者多个具体的方法;

(4)即使一个类中不含抽象方法,它也可以声明为抽象类;

(5)抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。

(6)如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

抽象类的成员特点:

成员变量

可以有成员变量

可以有常量

成员方法

可以有抽象方法

可以有非抽象方法

构造方法

可以有构造方法的,需要对抽象类的成员变量进行初始化

3、什么情况下,使用抽象类

(1)类中包含一个明确声明的抽象方法;

(2)类的任何一个父类包含一个没有实现的抽象方法;

(3)类的直接父接口声明或者继承了一个抽象方法,并且该类没有声明或者实现该抽象方法。

一、抽象类关键字abstract不可以和哪些关键字共存?

1.private:

私有的方法子类是无法继承到的,也不存在覆盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾。

2.final:

抽象类不能和final共存,因为抽象类自身无法创建对象,我们需要通过子类创建对象,一旦抽象类使用final关键字,那么抽象类就没有子类。抽象方法不能和final共存,因为抽象方法后期需要被子类重写,一旦加final无法重写

3.static:

抽象方法不能和static关键字共存,因为一旦加static我们就可以通过类名直接访问抽象方法,由于抽象方法没有方法体,没有任何意义,也不允许这样做

二、抽象类中是否可以不定义抽象方法?

是可以的,那这个抽象类的存在到底有什么意义呢?不让该类创建对象,方法可以直接让子类去使用

三、抽象类是否有构造函数?

有,抽象类的构造函数,是由子类的super语句来调用,用于给抽象类中的成员初始化

四、Java抽象类中可以包含main方法吗?

是的,抽象类可以包含main方法,它只是一个静态方法,你可以使用main方法执行抽象类,但不可以创建任何实例。

五、Java抽象类可以实现接口吗?它们需要实现所有的方法吗?

可以,抽象类可以通过使用关键字implements来实现接口。因为它们是抽象的,所以它们不需要实现所有的方法。好的做法是,提供一个抽象基类以及一个接口来声明类型。这样的例子是,Java.util.List接口和相应的Java.util.AbstractList抽象类。因为AbstractList实现了所有的通用方法,具体的实现像LinkedList和ArrayList不受实现所有方法的负担,它们可以直接实现List接口。

文章来源:csdn博客,权声明:转载文章来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

文章出自:http://qh.itpxw.cn/peixun/software/202191204.html

文章标题:关于JAVA面试中的抽象类问题(收藏)



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容