接口多态 面试题及习题

基础题目

第一题:概念辨析

  1. 什么是接口,如何定义接口?
    • 接口,是Java语言中一种引用类型,是方法的集合。
    • 使用interface关键定义接口,其中可以定义抽象方法,默认方法,私有方法,静态方法等方法。
  2. 什么叫做多态,条件是什么?
    • 一类事物的行为,具有多种表现形式。
    • 条件:
      • 继承或者实现【二选一】
      • 方法的重写。
      • 父类引用指向子类对象。
  3. 使用多态特性,带来了什么样的好处?
    • 增强方法的扩展性和复用性。
  4. 使用多态特性,注意什么样的弊端?
    • 由于类型的提升,导致调用子类对象特有的方法,必须向下转型。

第二题:语法练习

  • 语法点:接口

  • 按步骤编写代码,效果如图所示:
    在这里插入图片描述

  • 编写步骤:

    1. 定义接口A,普通类B实现接口A
    2. A接口中,定义抽象方法showA。
    3. A接口中,定义默认方法showB。
    4. B类中,重写showA方法
    5. 测试类中,创建B类对象,调用showA方法,showB方法。
  • 参考答案.:

	public class Test2 {public static void main(String[] args) {B b = new B();b.showA();b.showB();}}interface A{public abstract void showA();public default void showB(){System.out.println("BBBB");}}class B implements A {@Overridepublic void showA() {System.out.println("AAAA");}}

第三题:语法练习

  • 语法点:接口

  • 按步骤编写代码,效果如图所示:

在这里插入图片描述

  • 编写步骤:

    1. 定义接口A,普通类B实现接口A。
    2. A接口中,定义抽象方法showA。
    3. A接口中,定义私有方法show10(String str),循环打印10次str。
    4. A接口中,定义默认方法showB10,showC10,分别调用show10方法,传入参数。
    5. 测试类中,创建B对象,调用showA方法,showB10方法,showC10方法
  • 参考答案.:

	public class Test3 {public static void main(String[] args) {BB b = new BB();b.showA();b.show10B();b.show10C();}}interface AA{public abstract void showA();public default void show10B(){show10("BBBB");}public default void show10C(){show10("CCCC");}private  void show10(String str){for (int i = 0; i < 10; i++) {System.out.print(str+" ");}System.out.println();}}class BB implements AA {@Overridepublic void showA() {System.out.println("AAAA");}}

第四题:语法练习

  • 语法点:接口,静态

  • 按步骤编写代码,效果如图所示:

在这里插入图片描述

  • 编写步骤
  1. 定义接口A,普通类B实现接口A。
  2. A接口中,定义抽象方法showA。
  3. A接口中,定义私有静态方法show10(String str),循环打印10次str。
  4. A接口中,定义静态方法showB10,showC10,分别调用show10方法,传入参数。
  5. B类中,定义静态方法showD
  6. 测试类中,使用A接口,调用静态showB10方法,showC10方法,
  7. 测试类中,使用B类,调用showA方法,showD方法。
  • 参考答案.:
	public class Test4 {public static void main(String[] args) {AAA.showB();AAA.showC();BBB bbb = new BBB();bbb.showA();BBB.showD();}}interface AAA {public abstract void showA();public static void showB(){System.out.println("static BBBB");show10("BBBB");}public static void showC(){System.out.println("static CCCC");show10("CCCC");}private static void show10(String str) {for (int i = 0; i < 10; i++) {System.out.print( str+" ");}System.out.println();}}class BBB implements AAA {@Overridepublic void showA() {System.out.println("AAA");}public static void showD(){System.out.println("DDDD");}}

第五题:语法练习

  • 语法点:接口,多态

  • 按步骤编写代码,效果如图所示:

在这里插入图片描述

  • 编写步骤

    1. 定义接口Universe,提供抽象方法doAnything。
    2. 定义普通类Star,提供成员发光shine方法
    3. 定义普通类Sun,继承Star类,实现Universe接口
    4. 测试类中,创建Star对象,调用shine方法
    5. 测试类中,多态的方式创建Sun对象,调用doAnything方法,向下转型,调用shine方法。
  • 参考答案.:

		public class Test5 {public static void main(String[] args) {Star s  = new Star();s.shine();System.out.println("====================");Universe universe = new Sun();universe.doAnything();Sun sun  = (Sun) universe;sun.shine();}}interface  Universe{public abstract void doAnything();}class Star {public void shine(){System.out.println("star:星星一闪一闪亮晶晶");}}class  Sun extends Star implements Universe{@Overridepublic void doAnything() {System.out.println("sun:太阳吸引着9大行星旋转");}@Overridepublic void shine() {System.out.println("sun:光照八分钟,到达地球");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/87113.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC 四:Context层级

这一节我们来回答上篇文章中避而不谈的有关什么是RootApplicationContext的问题。 这就需要引入Spring MVC的有关Context Hierarchy的问题。Context Hierarchy意思就是Context层级&#xff0c;既然说到Context层级&#xff0c;说明在Spring MVC项目中&#xff0c;可能存在不止…

微信小程序 趣味学习与益智游戏系统APP

管理员、用户可通过HBuilder系统手机打开系统&#xff0c;注册登录后可进行管理员后端&#xff1b;首页、个人中心、用户管理、学生分类管理、学一学管理、玩一玩管理、听一听管理、试题管理、练一练管理、系统管理、考试管理&#xff0c;用户前端&#xff1b;首页、学一学、玩…

不同子网络中的通信过程

从输入www.baidu.com经历了什么 一、DNS&#xff08;网址->IP&#xff09; 二、ARP&#xff08;IP->MAC&#xff09; A->B&#xff1a;有数据发送&#xff0c;数据封装ip之后发现没有主机B的mac地址。然后ARP在本网段广播&#xff1a;检查目标地址和源地址是否在同一…

【C语言进阶(8)】自定义数据类型1:结构体

文章目录 前言Ⅰ 结构体的声明和定义⒈结构体声明⒉结构体定义⒊特殊的声明 Ⅱ 结构体的自引用Ⅲ 结构体初始化Ⅳ 访问结构体成员Ⅴ 结构体内存对齐⒈结构体内存对齐规则⒉分析结构体大小⒊嵌套结构体内存大小⒋内存对齐存在的原因 Ⅵ 修改默认对齐数Ⅶ 结构体传参 前言 C 语言…

9.4 集成功率放大电路

OTL、OCL 和 BTL 电路均有各种不同输出功率和不同电压增益的集成电路。应当注意&#xff0c;在使用 OTL 电路时&#xff0c;需外接输出电容。为了改善频率特性&#xff0c;减小非线性失真&#xff0c;很多电路内部还引入深度负反馈。这里以低频功放为例。 一、集成功率放大电路…

C++——引用

引用的概念 引用不是新定义一个变量&#xff0c;而是给已存在的变量取一个别名&#xff0c;编译器不会因为引用变量而开辟内存空间&#xff0c;它和它引用的变量公用同一块空间。 相当于是给被引用的变量取了一个小名&#xff0c;但是相当于是同一个变量。 类型& 引用变…

C#,《小白学程序》第一课:初识程序

曰&#xff1a;扫地僧练就绝世武功的目的是为了扫地更干净。 1 引言 编程只是一项技术&#xff0c;如包包子&#xff0c;不是什么高深的科学。 学习程序最不好的方法是先学习枯燥的语法。 学习程序主要是用代码解决问题。因此&#xff0c;我们抛开所有的语法与诸多废物&…

sql:SQL优化知识点记录(四)

&#xff08;1&#xff09;explain之ref介绍 type下的ref是非唯一性索引扫描具体的一个值 ref属性 例如&#xff1a;ti表先加载&#xff0c;const是常量 t1.other_column是个t1表常量 test.t1.ID&#xff1a;test库t1表的ID字段 t1表引用了shared库的t2表的col1字段&#x…

HTML之VSCode简单配置与创建

目录 插件下载 然后输入源码&#xff1a; 使用 效果 插件下载 下载这个插件后可以直接运行&#xff1a; 然后创建一个文件&#xff1a; 然后输入源码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

几个nlp的小任务(机器翻译)

几个nlp的小任务(机器翻译) 安装依赖库数据集介绍与模型介绍加载数据集看一看数据集的样子评测测试数据预处理测试tokenizer处理目标特殊的token预处理函数对数据集的所有数据进行预处理微调预训练模型设置训练参数需要一个数据收集器,把处理好数据喂给模型设置评估方法参数…

Python“牵手”淘宝商品列表数据,关键词搜索淘宝API接口数据,淘宝API接口申请指南

淘宝平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c;淘宝API接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问淘宝平台的数据&#xff0c;包括商品信息、店铺信息、物流信息等&#xff0c;从而实现淘宝平台…

Linux网络编程:线程池并发服务器 _UDP客户端和服务器_本地和网络套接字

文章目录&#xff1a; 一&#xff1a;线程池模块分析 threadpool.c 二&#xff1a;UDP通信 1.TCP通信和UDP通信各自的优缺点 2.UDP实现的C/S模型 server.c client.c 三&#xff1a;套接字 1.本地套接字 2.本地套 和 网络套对比 server.c client.c 一&#xff1a;线…