首页 > 试题广场 >

下列关于java抽象类的说法哪个正确?

[单选题]
下列关于java抽象类的说法哪个正确?
  • 某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法
  • 接口和抽象类是同一回事
  • 可以用抽象类直接去实例化创建对象
  • 一个类只能继承一个抽象类
推荐
Java不支持多继承,但是通过一些巧妙的设计来达到和多继承同样的效果 
通过接口、内隐类,继承、实现,互相配合,达到多继承的效果 

1、Java中一个类不能继承多个具体class。 

2、一个类只可继承自一个具体 class,但可实现多个接口。 
   interface不涉及到实现细节,不与任何存储空间有关连。 
   可以实现合并多个 interface ,达到可向上转型为多种基类的目的。 
   新类可继承自一个具象class,其余继承都得是interfaces。 

3、outer class不可继承自多个具体 class,可在其内部设多个inner class,每个inner class都能各自继承某一实现类。 
   inner class不受限于outer class 是否已经继承自某一实现类。 

4、inner class可以说是多重继承问题的完整解决方案。 
   inner class 可 “继承自多个具象或抽象类”。 
   一个类不能继承自多个一般类。但我们可以让其内部的多个inner class各自继承某一实现类达到类似的目的。
编辑于 2015-02-03 10:16:37 回复(4)
A.非抽象类继承抽象类,必须将抽象类中的方法重写,否则需将方法再次申明为抽象。所以这个方法还可再次声明为抽象,而不用重写。而用重载也错了,重载是在同一个类中,重写、覆盖才是在父子类中。
B.抽象类可以没有抽象方法,接口是完全的抽象,只能出现抽象方法。
C.抽象类无法实例化,无法创建对象。现实生活中也有抽象类的类子,比如说人类是一个抽象类,无法创建一个叫人类的对象,人继承人类来创建对象。况且抽象类中的抽象方法只有声明,没有主体,如果实例化了,又如何去实现调用呢?
D因为类是单继承的,类继承了一个抽象类以后,就不能再继承其他类了。
编辑于 2015-10-27 08:21:50 回复(5)
A:“重载”错误,子类应该是重写父类中的方法,或者抽象子类也可以保留,并不是必须要重写;
B:接口主要关心实现的行为,接口中存放的是一些常量和抽象方法,接口只能由public和无修饰符来修饰,是用来被继承和实现的;而抽象 类是由一组具有共同特征的食物抽象得来的,
C:抽象类要有子类去继承,才能实例化
D:抽象类是单继承,一个类只能有一个父类,但是接口是多继承,一个类可以实现多个接口
发表于 2017-03-18 17:48:48 回复(0)
选D,

A,不一定啊,万一这个子类也是个抽象类啊。还有啊,子类是重写父类的抽象方法,不是重载。
B,差别还是很大的,百度一下吧。
C,接口和抽象类都不可实例化。
发表于 2018-06-29 12:11:42 回复(1)
考察 Java 抽象类的知识点。首先,在Java中,抽象类的设计就是被用来继承的。抽象类一般指包含抽象方法的类,是一个不完整的类,因而不能用于创建对象。其次,抽象类的抽象程度介于普通类和接口之间,它是一种模板设计,反映的是一种对事物的抽象;而接口是一种辐射式设计,是对行为的抽象,是一种行为规范(契约)。

关于  Java中抽象类与接口  更为详细的阐述,请查看我的博客“http://blog.csdn.net/justloveyou_/article/details/52944564”。欢迎留言,欢迎指教!


编辑于 2016-12-05 16:44:54 回复(0)
如果一个类的的父类是抽象类,那么,此类要么也是抽象类,要么就实现父类的所有抽象方法。跟重载没有半毛钱关系。
接口和抽象类有很多不同,可自行谷歌。
发表于 2015-08-17 12:57:13 回复(0)
1. 如果一个类中有抽象方法,那么这个类必须声明为 抽象类
2.若父类包含有抽象方法(父类肯定是 抽象类 了), 子类必须去实现它
2. 若父类是 抽象类 ,但某个方法是非抽象的, 那么子类可以直接继承这个方法(不用实现)
发表于 2015-06-15 16:28:49 回复(0)
为什么选D错,感觉D是对的,C是错的

"按 thinking in java 里所说,创建子类对象的时候,首先会递归的创建父类对象,并借助父类构造函数完成对父类对象的初始化。那么当父类为抽象类的时候,JVM 也同样会自动创建抽象父类的对象,然后把它包含在子类对象中。如此一来,我们平时所说的不能创建抽象类的对象并不准确了,只是我们不能在语法上写出  new abstractClass() 而已..."
http://bbs.csdn.net/topics/310154762
发表于 2015-01-30 13:26:53 回复(7)
抽象类不可以创建实例,必须是有子类,才可以创建实例
发表于 2019-10-21 21:03:03 回复(0)

类是单继承的,不可多继承。而且子类是重写父类中的全部抽象方法并且实现,若不重写抽象方法,则需再次重写这些抽象方法

发表于 2019-09-05 21:18:23 回复(0)
抽象类和普通类不能多继承,  接口可以多继承,  接口继承多个接口   
发表于 2019-06-14 11:14:53 回复(0)
一个类只能继承一个父类 可以实现多个接口
发表于 2019-05-08 10:18:30 回复(0)
java单继承
发表于 2019-01-18 16:26:57 回复(0)
A又扣字眼!
发表于 2018-12-27 19:50:29 回复(0)
。。。有没有想吐槽d选项的牛油。。。一个类我还只能继承一个普通类呢!非得是抽象类吗(虽然我这是在硬杠。。。)我退下了。。。
发表于 2018-09-19 10:22:23 回复(0)
可以间接继承多个类啊,只是只能继承一个直接父类,唉。。。。。。
发表于 2018-05-26 11:27:02 回复(0)
  • A. 子类继承于抽象类,就需要重写抽象类的所有抽象方法,是重写( overwrite )不是 重载( override )

  • B. 接口和抽象类不是一回事,接口不能直接 new,但是通过它的实现类可以,抽象类可以直接 new

  • C. 抽象类不能直接实例化创建对象,可以通过它的子类来完成,只需要创建一个引用即可

  • D. Java 中类只能单继承,但是通过接口等一系列操作间接实现多继承

发表于 2018-05-02 22:17:18 回复(0)

抽象类的父类是抽象类,可以重写父类方法再次声明为抽象,不必实现

发表于 2018-03-08 18:07:25 回复(0)
java中单继承
发表于 2018-03-05 08:32:27 回复(0)
抽象类可以没有抽象方法,只要用abstract修饰的类就是抽象类,就不能实例化,与有没有抽象方法没有关系。

发表于 2018-03-04 21:07:02 回复(0)
抽象类不能直接实例化,只能由具体的子类去实力化
发表于 2017-11-13 23:50:00 回复(0)