接口多态 面试题及习题

news2025/1/20 16:27:28

基础题目

第一题:概念辨析

  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 {
	    @Override
	    public 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 {
	    @Override
	    public 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 {
	    @Override
	    public 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{
		    @Override
		    public void doAnything() {
		        System.out.println("sun:太阳吸引着9大行星旋转");
		    }
		    @Override
		    public void shine() {
		        System.out.println("sun:光照八分钟,到达地球");
		    }
		}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实例044 在关闭窗口前加入确认对话框

实例说明 用户对程序进行操作时&#xff0c;难免会有错误操作的情况&#xff0c;例如不小心关闭程序&#xff0c;如果尚有许多资料没有保存&#xff0c;那么损失将非常严重&#xff0c;所以最好使程序具有灵活的交互性。人机交互过程一般都是通过对话框来实现的&#xff0c;对话…

基于SpringBoot母婴商城系统【附开题|万字文档(LW)和搭建文档】

主要功能 前台界面&#xff1a; ①首页、商品信息推荐、商品资讯展示、查看更多等 ②商品信息、商品名称、标签、品牌等 ③添加购物车、立即购买、点我收藏、评论等 ④个人中心、我的订单、我的地址、我的收藏、支付等 后台登录&#xff1a; ①首页、个人中心&#xff1a;修改…

ElasticSearch-集成ik分词器

本文已收录于专栏 《中间件合集》 目录 背景介绍版本选择优势说明集成过程1.下载安装包2.解压安装包3.重启ElasticSearch服务3.1通过ps -ef | grep elastic查看正在启动的es进程号3.2使用kill -9 xxx 杀死进程3.3使用 ./elasticsearch 启动es服务 分词测试细粒度分词方式分词请…

git操作:将一个仓库的分支提交到另外一个仓库分支

这个操作&#xff0c;一般是同步不同网站的同个仓库&#xff0c;比如说gitee 和github。某个网站更新了&#xff0c;你想同步他的分支过来。然后基于分支开发或者其它。 操作步骤 1.本地先clone 你自己的仓库。也就是要push 分支的仓库。比如A仓库&#xff0c;把B仓库分支&am…

字节8年经验之谈 —— 如何设计一个自动化测试平台?

之前写过很多自动化测试相关的文章&#xff0c;后台有同学留言&#xff1a;希望写一篇自动化测试平台的文章。他的原话是这样&#xff1a;目前市场上开源或者商业的自动化测试平台很多&#xff0c;但试用下来总感觉有些地方不太融洽&#xff0c;想自己落地一个适合自己团队和项…

LC-1448. 统计二叉树中好节点的数目(DFS、)

1448. 统计二叉树中好节点的数目 中等 给你一棵根为 root 的二叉树&#xff0c;请你返回二叉树中好节点的数目。 「好节点」X 定义为&#xff1a;从根到该节点 X 所经过的节点中&#xff0c;没有任何节点的值大于 X 的值。 示例 1&#xff1a; 输入&#xff1a;root [3,1,…

Python案例|Matplotlib库实现的数据分析

数据展示是数据分析和挖掘中的重要环节&#xff0c;通过图形的形式可以直观、清晰地呈现数据内在的规律。 本文所用数据采用上一篇案例实现后的数据表&#xff0c;数据存储在newbj_lianJia.csv文件中&#xff0c;具体代码如下。 import pandas as pd #导入库 import matplot…

论文阅读_图形图像_U-NET

name_en: U-Net: Convolutional Networks for Biomedical Image Segmentation name_ch: U-Net&#xff1a;用于生物医学图像分割的卷积网络 addr: http://link.springer.com/10.1007/978-3-319-24574-4_28 doi: 10.1007/978-3-319-24574-4_28 date_read: 2023-02-08 date_publi…

基于“R语言+遥感“水环境综合评价方法教程

详情点击链接&#xff1a;基于"R语言遥感"水环境综合评价方法教程 一&#xff1a;R语言 1.1 R语言特点&#xff08;R语言&#xff09; 1.2 安装R&#xff08;R语言&#xff09; 1.3 安装RStudio&#xff08;R语言&#xff09; &#xff08;1&#xff09;下载地址…

MyBatis分页插件PageHelper的使用及特殊字符的处理

目录 一、PageHelper简介 1.什么是分页 2.PageHelper是什么 3.使用PageHelper的优点 二、PageHelper插件的使用 原生limit查询 1. 导入pom依赖 2. Mybatis.cfg.xml 配置拦截器 3. 使用PageHelper进行分页 三、特殊字符的处理 1.SQL注入&#xff1a; 2.XML转义&#…

C语言:选择+编程(每日一练Day8)

目录 选择题&#xff1a; 题一&#xff1a; 题二&#xff1a; 题三&#xff1a; 题四&#xff1a; 题五&#xff1a; 编程题&#xff1a; 题一&#xff1a;字符个数统计 思路一&#xff1a; 题二&#xff1a;多数元素 思路一&#xff1a; 本人实力有限可能对一些…

创建harbor仓库并进行一些操作

文章目录 前言一、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。二、安装搭建私有仓库 Harbor1、安装docker-compse2、安装harbor 3、修改配置文件4、运行脚本5 登入harbor仓库总结 前言 本篇文章需要完成的以下几个操作&#xff1a; 使用mysql:5.6和 ownclo…

0基础学习VR全景平台篇 第90篇:智慧眼-数据统计

【数据统计】是按不同条件去统计整个智慧眼项目中的热点&#xff0c;共包含四大块&#xff0c;分别是数据统计、分类热点、待审核、回收站&#xff0c;下面我们来逐一进行介绍。 1、数据统计 ① 可以按所属分类、场景分组、所属场景、热点类型以及输入热点名去筛选对应的热点&…

Spring之Spring生态系统的演进

未来展望&#xff1a;Spring生态系统的演进 未来展望&#xff1a;Spring生态系统的演进 摘要引言词汇解释详细介绍新技术趋势与影响开发方向与展望探讨Spring在未来的发展趋势微服务与云原生响应式编程强调开发效率和全栈式开发支持人工智能和大数据保持灵活性和创新性 针对新兴…

有效降低传导辐射干扰

一直以来&#xff0c;设计中的电磁干扰&#xff08;EMI&#xff09;问题十分令人头疼&#xff0c;尤其是在汽车领域。为了尽可能的减小电磁干扰&#xff0c;设计人员通常会在设计原理图和绘制布局时&#xff0c;通过降低高di / dt的环路面积以及开关转换速率来减小噪声源。 但…

SpringBootWeb案例 Part 4

3. 修改员工 需求&#xff1a;修改员工信息 在进行修改员工信息的时候&#xff0c;我们首先先要根据员工的ID查询员工的信息用于页面回显展示&#xff0c;然后用户修改员工数据之后&#xff0c;点击保存按钮&#xff0c;就可以将修改的数据提交到服务端&#xff0c;保存到数据…

eps三维测图软件工具箱设置

1、打开软件&#xff0c;点击工具箱按钮。具体如下&#xff1a; 2、点击工具箱内分组按钮&#xff0c;右键选择插入命令。如下&#xff1a; 3、进入命令设置界面&#xff0c;如下&#xff1a;

Android View动画整理

此前也有写 View 动画相关的内容&#xff0c;但都只是记录代码&#xff0c;没有特别分析。以此篇作为汇总、整理、分析。 Android View 动画有4中&#xff0c;分别是 平移动画 TranslateAnimation缩放动画 ScaleAnimation旋转动画 RotateAnimation透明度动画 AlphaAnimation …

深度学习模型优化:提高训练效率和精度的技巧

文章目录 1. 数据预处理2. 批量归一化&#xff08;Batch Normalization&#xff09;3. 学习率调整4. 提前停止&#xff08;Early Stopping&#xff09;5. 模型压缩与剪枝6. 模型并行与分布式训练7. 自动化超参数调整结论 &#x1f389;欢迎来到AIGC人工智能专栏~探索Java中的静…

【MySQL】2、MySQL数据库的管理

常用 describe user; Field:字段名称 Type:数据类型 Null :是否允许为空 Key :主键 Type:数据类型 Null :是否允许为空key :主键 Default :默认值 Extra :扩展属性&#xff0c;例如:标志符列&#xff08;标识了种子&#xff0c;增量/步长&#xff09;1 2 id&#xff1a;1 3 5 …