首页 > 试题广场 >

代码运行结果是?

[单选题]
有以下类定义:
abstract class Animal{
	abstract void say();
}
public class Cat extends Animal{
	public Cat(){
		System.out.printf("I am a cat");
	}
	public static void main(String[] args) {
		Cat cat=new Cat();
	}
}
运行后:
  • I am a cat
  • Animal能编译,Cat不能编译
  • Animal不能编译,Cat能编译
  • 编译能通过,但是没有输出结果
推荐
B  当一个实体类集成一个抽象类,必须实现抽象类中的抽象方法,抽象类本身没有错误,但是cat类编译通不过
编辑于 2015-12-04 19:55:54 回复(6)

包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类的主要有三点区别:

1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

2)抽象类不能用来创建对象;

3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

在其他方面,抽象类和普通的类并没有区别。

发表于 2015-12-21 22:44:34 回复(13)
基类是抽象类,子类继承父类,但是没有实现基类的抽象方法,那么子类也是抽象类。抽象类不能创建对象,所以在主函数中创建对象编译不会通过。
发表于 2015-12-04 10:23:50 回复(11)
一个类继承了抽象类,就必须重写该抽象类的所有抽象方法,如果这个类没有重写抽象类的抽象方法,那么这个类也要定义为抽象类。抽象类不可以实例化。就是不可以new一个对象
发表于 2016-07-23 07:36:12 回复(1)
CAT继承Animal类但是并没有去实现say方法所以不能被编译
发表于 2015-10-27 16:13:30 回复(0)
此题考点:子类继承父类,如果父类是抽象类,子类如果想创建对象,那么子类必须重写抽象类方法!如果子类没有重写抽象类方法,那么子类也还是抽象类,抽象类不能创建对象,所以在主函数中创建对象编译不会通过。 注意: 1.抽象类中可以有抽象方法,也可以有非抽象方法,但是实现类必须要完整重写所有抽象方法,否则仍还是抽象类 2.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public
编辑于 2017-02-17 12:20:10 回复(0)
抽象方法没重写
发表于 2015-10-10 11:06:58 回复(0)
实践是检验真理的唯一标准 ----某哲学家
发表于 2020-05-08 19:48:31 回复(0)
基类是抽象类时,子类必须提供具体实现
发表于 2015-10-28 21:16:14 回复(0)
abstract可以修饰类和方法,被修饰的类称为抽象类,被修饰的方法被称作抽象方法。抽象类可以被继承但是不能被实例化,继承抽象类的子类必须实现抽象类中的抽象方法,除非子列也是抽象类,则可以实现部分父类抽象类的方法。抽象方法没有方法体。 该题Animal是抽象类,类中有抽象方法。Cat继承该抽象类,且本身不是抽象类,所以需要实现Animal抽象类中的抽象方法。所以结果是Animal能够编译但是Cat编译不通过。
发表于 2022-05-05 16:35:11 回复(0)
父类是抽象类,子类继承,要么重写父类的所有抽象方法,要么也是抽象类。抽象类不能实例化,得采用多态的方式:父类引用指向子类对象。
编辑于 2021-08-19 16:45:30 回复(0)
此题选择 B : 抽象类中不一定有抽象方法 但是一个类继承抽象类之后务必实现抽象类中的抽象方法 或者将此类变为抽象类
发表于 2022-03-09 14:37:15 回复(0)
抽象类的子类必须重写父类抽象方法,抽象方法只能在抽象类中,抽象类可以有普通方法
发表于 2021-12-29 22:20:26 回复(0)
当一个实体类集成一个抽象类,必须实现抽象类中的抽象方法,抽象类本身没有错误,但是cat类编译通不过
发表于 2021-08-07 09:23:51 回复(0)
Animal是抽象类,Cat继承抽象类,需要覆盖抽象类Animal的抽象方法say();否则编译不通过
或者给子类Cat加上abstract,使Cat成为抽象类,并且注释掉 Cat cat = new Cat();可以编译通过
发表于 2021-06-25 09:17:20 回复(0)

考察抽象类

父类是抽象类,子类继承父类,但是没有实现父类的抽象方法,那么子类也是抽象类,cat要加abstract。抽象类不能创建对象,所以在主函数中创建对象编译不会通过。

发表于 2021-06-08 19:45:32 回复(0)
对于一个抽象类的子类
子类必须实现抽象类中的抽象方法如果没有实现则该子类就必须声明为抽象类
发表于 2020-03-31 16:46:36 回复(0)
Animal是抽象类,cat继承animal需要实现其包含的抽象方法
发表于 2020-01-31 19:54:56 回复(0)
一个类继承抽象类必须实现抽象类中的所有抽象方法,否则该子类也必须是抽象类
发表于 2019-08-31 13:55:28 回复(0)
继承抽象类必须实现抽象类里面的所有抽象方法,所以cat无法编译通过
发表于 2019-02-13 14:27:38 回复(0)
当一个类继承一个抽象类的时候,必须实现抽象类的方法
发表于 2017-08-04 20:38:10 回复(0)