首页 > 试题广场 >

对于abstract声明的类,下面说法正确的是

[单选题]
 对于abstract声明的类,下面说法正确的是
  • 可以实例化
  • 不可以被继承
  • 子类为abstract
  • 只能被继承
  • 可以被抽象类继承
推荐
答案:E
A,抽象类不能实例化,因为有抽象方法未实现
B,可以被继承。派生类可以实现抽象方法
C,子类可以是抽象的,也可以非抽象的
D,只能被继承说法太肯定,不正确
E,可以被抽象类继承,也可以被非抽象类继承
编辑于 2015-01-10 21:48:57 回复(22)
D的反例:其他同学的举例,感觉不对哦,我举一个,欢迎拍砖
public abstract class FanLi {
public abstract void nouse();取消发表
public static void main(String[] args) {
FanLi.fun();
}
public static void fun() {
System.out.println("我是反例");
}
}
发表于 2015-12-16 20:29:11 回复(16)
  • A.可以实例化   //错误,抽象类中有抽象方法,需要被实现,不能实例化。
  • B.不可以被继承  //错误,可以被继承,如果不继承,里面的抽象方法就没意思了。
  • C.子类为abstract  //错误,子类不一定为抽象类,可以是,也可以不是。
  • D.只能被继承  //错误,我觉得,抽象类不仅可以被继承,还可以直接拿来使用的,当然,这个使用是拿来声明,而不是实例化,因为抽象类不能实例化,但可以声明使用。就像接口一样。可以动态绑定,地实现多态,如下例子,AbstractMap就是抽象类,它可以这样使用。
  • AbstractMap<String, Integer> am = new HashMap<String, Integer>(); am.put("young", 23); am.put("strongyoung", 26); Iterator<String> itr = am.keySet().iterator(); while(itr.hasNext()){ String key = itr.next(); System.out.println(key + " : " + am.get(key)); }
  • E.可以被抽象类继承  //正确。
编辑于 2015-08-17 12:10:29 回复(5)


编辑于 2019-10-21 21:33:43 回复(0)
这题恶心了,没意义,曲解了abstract关键字:
    abstract用于实现接口声明的部分方法,未实现的方法由子类继承实现。
只定义静态方法加abstract还有什么意义?声明常量也不建议用接口,更不建议只用抽象类干这种事情吧。
发表于 2017-05-22 16:40:48 回复(0)
A、抽象类本身是不能实例化的,但可以作为父类引用而new的则是子类,请记住是作为“父类引用”,并不是“实例化”(故A错误)
B、不可以被继承,这是错误的,母庸质疑(如下图)(故B错误)
C、作为抽象类的子类是可以为抽象类,也可以是普通类(C答案不准确,一半对一半不对)
D、“只能被继承” 这五个字看似没任何毛病,“只能”:题目答案过于肯定,抽象类除了能被继承外,还可以做为“父类引用”,但这些都是对于外部而言,对于抽象类内部,可以去继承抽象类 和 普通类 或者 实现接口 等,这D答案的意思应该指的是抽象类的“用法”,可是D答案的“范围”只说了个大概,所以不管是对于 “外部用法” 还是 “内部用法” 抽象类的用法,不仅仅是“被继承”而已(故D答案错误)
E、和C答案的解释一样(故E正确)


编辑于 2019-02-26 07:40:03 回复(2)
D选项 一句话 :匿名内部类
发表于 2016-03-08 15:49:39 回复(2)
抽象类不能实例化
抽象类可以被子类继承,但是抽象方法必须重写,如果子类不重写,那么子类也必须是抽象类
子类不一定是抽象类
发表于 2021-11-12 15:30:42 回复(0)
E
发表于 2015-01-26 23:23:30 回复(0)
抽象类可以作为对象的声明类型
发表于 2020-12-29 12:06:40 回复(0)
抽象类不能被实例化,因为抽象类中有抽象方法,抽象方法需要被实现;
可以被继承,派生类(子类)可以实现抽象方法;
子类可是抽象也可非抽象;
可以抽象类继承也可被非抽象类继承
发表于 2021-12-20 09:30:45 回复(0)
A,抽象类不能实例化,因为有抽象方法未实现 B,可以被继承。派生类可以实现抽象方法 C,子类可以是抽象的,也可以非抽象的 D,只能被继承说法太肯定,不正确 E,可以被抽象类继承,也可以被非抽象类继承
发表于 2021-11-02 23:23:34 回复(0)
抽象类可以使用类名直接调用静态方法,并不是一定只能被继承
发表于 2021-09-02 12:55:31 回复(0)
抽象类除了被继承,还可以被声明使用
发表于 2021-03-29 09:59:32 回复(0)
D项,抽象类里面并不一并都是抽象方法,也可能拥有静态实例方法,可以直接拿来用。个人看法,如有不对欢迎指正。
发表于 2018-06-04 22:26:05 回复(0)
package abstract_test;

public abstract class Test_abs {
	public static void main(String[] args) {
		System.out.println("抽象类不是必须被继承");
	}
}
可以正常输出。
也就是抽象类不是一定要被继承。当抽象类的抽象方法不能被其本身实例化时,才要通过子类实例化。

发表于 2017-04-28 23:18:25 回复(0)
D 如果抽象类的子类实现了所有的方法,子类就可以实例化产生对象
此时,可以使用多态  抽象类 对象名 = new 子类构造器来产生抽象类的对象
发表于 2015-04-20 20:11:25 回复(2)
D选项说的太过于绝对。

,抽可以方法方法。抽方法没有方法,它。非方法可以,子可以使用方法

,抽可以字段(变,这字段可以方法使用,也可以使用

,抽可以。当一个一个,它可以选择所有方法,而

,说。更设计创建,并一个方法


抽象类也可以创建一个线程,这个线程可以做很多事情
发表于 2024-01-02 22:37:07 回复(0)
a.抽象类不能被实例化,因为有抽象方法未实现。一般都是子类实现所有的抽象方法然后实例化子类,来使用。
c.抽象类可以被继承,子类可以是抽象的也可以是非抽象的。、如果子类可以实现抽象类中的所有抽象方法那他就是普通类可以被实例化,如果她没能实现抽象类中的所有抽象方法那他只能是抽象类,不能被实例化。
d.不理解,抽象类就是只可以被继承啊。
e.对
发表于 2023-06-14 10:32:00 回复(0)
只想解释一下D选项,抽象类本身不仅能被继承,它也能继承其他抽象类(主动和被动的事情啦)
发表于 2023-06-10 10:00:33 回复(0)
D选项
抽象类并不一定要被继承,一个抽象类可以被定义而不被继承,但这样做通常没有太大的意义,因为它的方法和属性无法被其他类使用。
发表于 2023-05-21 21:01:07 回复(0)