首页 > 试题广场 >

对抽象类的描述正确的是()

[单选题]

对抽象类的描述正确的是()

  • 抽象类的方法都是抽象方法
  • 一个类可以继承多个抽象类
  • 抽象类不能有构造方法
  • 抽象类不能被实例化

D

A.抽象类可以有非抽象的方法,而接口中的方法都是抽象方法

B.java中类只能单继承,接口可以‘继承’多个接口

C.抽象类必须有构造方法,接口一定没有构造方法

D.实例化一般指new一个对象,所以抽象类不能实例化

编辑于 2021-07-20 13:43:08 回复(10)
包含抽象方法的类必须定义为抽象类; 抽象类不一定包含抽象方法,也可以包含普通方法; 抽象类有构造方法,但是不能new一个对象; 抽象类只支持单继承。
编辑于 2021-07-20 13:35:12 回复(8)
D。
  • 抽象类的方法都是抽象方法。× 只要有一个抽象方法的类就是抽象类。
  • 一个类可以继承多个抽象类。 × 一个类只能继承一个类,可以实现多个接口。
  • 抽象类不能有构造方法。 × 类都有构造方法,但是不能new。
发表于 2017-03-14 16:52:57 回复(1)
选D
A、抽象类中可以没有抽象方法。
B、类都是单继承,但是继承有传递性。
C、抽象类可以有构造器,但是不能实例化。找个构造器有两个用处:
        1. 给非抽象子类实例化时调用,子类构造器中第一行默认是super()
        2. 可以在构造器中初始化抽象类中的成员、类方法。
发表于 2018-07-09 09:37:16 回复(2)
A抽象类不一定要包含抽象方法,本质还是类,可以拥有,构造器,非抽象方法,静态属性等
Bjava是单继承机制,而一个类可以实现多个接口,接口是对JAVA单继承机制的补充
C抽象类可以有(显性)构造器,也可以没有,因为有继承关系,默认访问父类的无参构造器,接口中一定没有构造器,接口不需要被初始化,构造器的作用是对的初始化,因此接口不需要构造器。
D抽象类和接口都不能被实例化。
点个赞吧~
发表于 2022-03-30 11:22:37 回复(0)
A.抽象类不一定有抽象方法,但是有抽象方法的类必定是抽象类(记着正常类怎么可能会有抽象方法就对了)
B.Java是单继承,但是可以实现多接口(咋能用接口就别用抽象类,继承就一次太宝贵了,你总不能有两个爸爸吧)
C.抽象类必须得有构造方法(连构造方法都没有我继承你干什么?是要给子类使用的)
D.抽象类是不能实例化的(都说抽象咯,那肯定是无法直接描述出的)
发表于 2021-12-04 09:19:37 回复(0)
记住了 抽象类和接口都不能被实例化
发表于 2020-06-25 06:07:48 回复(0)
包含抽象方法的类,可以是抽象类也可以是接口,但抽象类也可以包含普通方法。
根据题目给出的选择
A选项、说话太肯定了,没有其他可能性(“都是”代表 全部)故A错误
B选项、一个类只能继承一个类(抽象类也是如此) 故B错误
C选项、抽象类可以有构造方法 故C错误
D选项、抽象类确实是不能实例化(母庸质疑故选择D

C选项 可能会有很多朋友要问了,既然抽象类不能实例化那构造方法怎么用,其实抽象类的构造方法主要是用于被子类调用,例如
在多态的情况下多个子类继承同一个抽象类,在创建子类时,都要做同一件事时,如果每个子类都写一遍同样的代码,就造成了代码冗余了,既然是在创建时每个子类必须做的一件事,那么可以再父类的构造器中去完成,这样就实现了统一)

编辑于 2019-02-20 10:40:51 回复(0)
1.抽象类里可以包含抽象方法和非抽象方法
2.一个类只能继承一个类,但是可以实现多个接口
3.抽象类可以由构造方法,但当其他类继承时子类必须super()父类的构造方法
4.抽象类没有具体的实现方法,所以不能被实例化
发表于 2018-03-26 21:51:30 回复(0)
子类继承抽象类时,构造函数不会被覆盖。而且,在实例化子类对象时首先调用的是抽象类中的构造函数再调用子类中的。
发表于 2017-06-20 22:39:59 回复(0)
  • 拥有抽象方法的类叫做抽象类
  • 抽象类不能被实例化,但是有构造方法
  • 可以通过匿名内部类的方式表面看起来实例化(面试官会问)

java中支持单继承不支持多继承,可以通过实现多个接口间接实现多继承

发表于 2018-06-01 23:54:12 回复(0)
D.严谨地说抽象类是不能被直接实例化,因为可以通过将抽象类的引用指向其子类来实例化
发表于 2023-10-08 15:23:17 回复(0)

选项A错误,抽象类可以包含普通方法。

选项B错误,Java中的继承是单继承,一个子类最多只能有一个父类。

抽象类到底能不能被实例化是初学者很容易犯的错误,抽象类确实有构造方法,但这个构造方法是用来被子类调用的,因为任何子类都必须调用从Object开始的所有父亲的构造方法,才算完成初始化工作。如果抽象类被实例化,就会报错,编译无法通过。而接口里不包含构造器,自然无法被实例化。因此

发表于 2022-09-05 09:36:30 回复(0)
抽象类不是可以被子类实例化么,也叫抽象类被实例化吧?还是说只能指被new才叫实例化
发表于 2022-08-29 16:22:52 回复(0)
抽象类可以有构造方法
发表于 2022-08-25 23:11:13 回复(0)
A.抽象类可以有非抽象的方法,而接口中的方法都是抽象方法
发表于 2022-08-20 21:19:23 回复(0)
抽象类的本质还是类可以包含普通方法,Java的继承是单继承机制,抽象类和接口类都不能被实例化!!!
发表于 2022-04-05 21:29:11 回复(0)

No.

区别

抽象类

接口

1

关键字

abstract class

interface

2

组成

构造方法,静态方法,普通方法,抽象方法,常量,变量

抽象方法,全局常量

3

子类

class 子类 extends 抽象类

class 子类 implements 接口, ...

4

关系

一个抽象类可以继承一个抽象类或实现多个接口

一个接口不能继承一个抽象类,但可以继承多个接口

5

权限

可以使用各种权限

只能使用public权限

6

限制

单继承局限

没有单继承局限

7

必须有子类,子类(非抽象类)必须重写全部抽象方法

8

不能使用new实例化,通过子类实例化向上转型

发表于 2021-12-26 21:20:01 回复(0)
java中得都是单继承机制

发表于 2021-03-18 14:39:58 回复(0)
抽象类有构造方法,但不能被实例化。
发表于 2021-03-17 10:43:00 回复(0)