Java 多态、ArrayList、Collection、继承、Iterator、抽象类、instanceof、String、Object 类面试题
- 在Java中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,那么实现多态的步骤包括以下几个方面( )。 A.子类重写父类的方法。 B.子类方法设置为final类型。 C.定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法 D.运行时,根据实际创建的对象类型动态决定使用哪个方法
答案:A、C、D
解释:
- A. 子类重写父类的方法是实现多态的关键步骤,通过重写父类的方法,子类可以根据自己的特点实现不同的行为。
- B. 子类方法设置为final类型会阻止子类重写该方法,因此不能实现多态。
- C. 定义方法时,把父类类型作为参数类型,可以让方法接受父类或子类的对象作为参数,实现了多态的调用方式。
- D. 运行时根据实际创建的对象类型动态决定使用哪个方法,这是多态的核心机制,称为动态绑定或后期绑定。
- 已知ArrayList的对象是list,以下哪个方法是判断ArrayList中是否包含'dodoke'?
A. list.contains('dodoke'); B. list.add('dodoke'); C. list.remove('dodoke'); D. list.retain('dodoke');
答案:A
解释:
- A. list.contains('dodoke') 用于判断 ArrayList 中是否包含指定的元素 'dodoke',并返回一个布尔值。
- B. list.add('dodoke') 用于向 ArrayList 中添加元素 'dodoke'。
- C. list.remove('dodoke') 用于从 ArrayList 中删除元素 'dodoke'。
- D. list.retain('dodoke') 用于保留 ArrayList 中与 'dodoke' 相同的元素,其他元素被删除。
- 下列哪个方法可以获取Collection集合指定位置处的元素?
A. add(E e) B. remove() C. size() D. get(int index)
答案:D
解释:
- A. add(E e) 用于向 Collection 集合添加元素。
- B. remove() 用于从 Collection 集合中删除元素。
- C. size() 用于获取 Collection 集合中元素的数量。
- D. get(int index) 用于获取 Collection 集合中指定位置处的元素,index 表示元素在集合中的位置索引。
- 创建一个父类Animal,一个子类Cat,Animal three = new Cat(), 是( ) A. 向下转型 B. 自动转型 C. 向上转型 D. 隐式转型
答案:C
解释:
- 子类对象可以隐式转换为父类对象,这种转换称为向上转型。
- 在代码中,Cat 是 Animal 的子类,因此 new Cat() 创建的是一个 Cat 对象,将其赋值给 Animal 类型的变量 three,这就是向上转型。
- 以下关于List对象的创建错误的是
A. List list=new List(); B. List list=new ArrayList(); C. ArrayList list=new ArrayList(); D. List list=new LinkedList(10);
答案:A
解释:
- A. List 是一个接口,不能直接实例化。
- B. ArrayList 是 List 接口的实现类,可以用来创建 List 对象。
- C. ArrayList 是 List 接口的实现类,可以用来创建 List 对象,并使用 ArrayList 类型的变量保存。
- D. LinkedList 是 List 接口的另一个实现类,可以用来创建 List 对象,并使用 List 类型的变量保存。
- 关于Iterator的描述错误的是
A. Iterator可以对Collection集合中的元素进行遍历 B. hasNext()方法用于检查集合中是否还有下一个元素 C. next()方法返回集合中的下一个元素 D. next()方法的返回值为false时,表示集合中的元素已经遍历完毕
答案:D
解释:
- D. next() 方法的返回值为 false 时,表示集合中已经没有下一个元素了,而不是元素已经遍历完毕。
- 定义一个抽象类Worker类,关于类中成员的说法正确的是?
A. Worker类中只能存放抽象方法 B. Worker类中不能有成员变量 C. Worker类中的抽象方法在子类中必须重写 D. 以上说法均错误
答案:C
解释:
- 抽象类可以包含成员变量、普通方法和抽象方法。
- 抽象类中的抽象方法必须在子类中被重写,否则子类也必须声明为抽象类。
- 下列关于instanceof说法正确的是( ) A. instanceof 的返回值为true和false B. instanceof可以用来判断对象是否可满足某个特定类型 C. 可以通过“A instanceof B'表示 A 类可以转型为B类 D. instanceof可放在if语句的条件表达式中
答案:A、B、C、D
解释:
- A. instanceof 运算符用于判断一个对象是否属于某个特定类型,返回值为 true 或 false。
- B. instanceof 可以用来判断对象是否可满足某个特定类型,例如判断一个对象是否是某个类的实例。
- C. 'A instanceof B' 表示 A 类是 B 类的子类或接口的实现类,可以用来判断 A 类是否可以转型为 B 类。
- D. instanceof 可以放在 if 语句的条件表达式中,用于控制代码块的执行。
- 下列选项中,合法的String型字符串常量是( )
A. How are you B. 'apple' C. 'M' D. “#apple'
答案:B
解释:
- 字符串常量必须用双引号包围,例如 'apple'。
- 单引号用于表示字符常量,例如 'M'。
- 下列关于Object类的叙述正确的是() A. Object类是所有类的父类 B. 所有类都可以继承Object中允许被继承的方法 C. 一个类没有使用extends关键字明确标识继承关系,则默认继承Object类 D. 要想继承Object类,必须使用extends关键字标识继承关系
答案:C
解释:
- A. Object 类是所有类的父类,所有类都默认继承 Object 类。
- B. 所有类都可以继承 Object 类中允许被继承的方法。
- C. 一个类没有使用 extends 关键字明确标识继承关系,则默认继承 Object 类。
- D. 不需要使用 extends 关键字明确标识继承关系,所有类都默认继承 Object 类。
原文地址: https://www.cveoy.top/t/topic/oL8Z 著作权归作者所有。请勿转载和采集!