首页 > 分享 > java多态 面试 java多态例题

java多态 面试 java多态例题

转载

数据小筑 2023-08-08 08:01:45

文章标签 java多态 面试 java 多态 System 子类 游戏开发 文章分类 Java 后端开发 阅读数111

2.1.多态练习
编写程序模拟“主人”喂养“宠物”的场景:
提示1:
主人类:Master
宠物类:Pet
宠物类子类:Dog、Cat、Bird
提示2:
主人应该有喂养的方法:feed()
宠物应该有吃的方法:eat()
只要主人喂宠物,宠物就吃。
要求:主人类中只提供一个喂养方法feed(),要求达到可以喂养各种类型的宠物。
编写测试程序:
创建主人对象
创建各种宠物对象
调用主人的喂养方法feed(),喂养不同的宠物,观察执行结果。
通过该案例,理解多态在开发中的作用。
重要提示:feed方法是否需要一个参数,参数选什么类型!!!

注意:在文本中并未多加阐述,代码中有比较详细的注释

1、未使用多态时

public class AnimalTest01 { //编写测试程序: //创建主人对象 //创建各种宠物对象 //调用主人的喂养方法feed(),喂养不同的宠物,观察执行结果。 public static void main(String[] args) { //新建一个主人对象 新建一个宠物对象 Master m1 = new Master(); Dog zangao = new Dog(); //主人喂养宠物 m1.feed(zangao); //输出狗狗喜欢吃骨头! //zangao.eat(); Cat bosi = new Cat(); m1.feed(bosi); Bird yingwu = new Bird(); m1.feed(yingwu); } } //主人类:Master //主人类中只提供一个喂养方法feed(),要求达到可以喂养各种类型的宠物。 class Master { //无参构造 public Master() { } //喂养方法 public void feed(Dog d) { d.eat(); } public void feed(Cat c) { c.eat(); } public void feed(Bird b) { b.eat(); } } //宠物类:Pet 此处宠物类Pet定义了,但在主方法中并未起任何作用 class Pet { public void eat() { //宠物吃食物 System.out.println("宠物喜欢吃宠物食物!"); } } //宠物类子类:Dog、Cat、Bird //宠物应该有吃的方法:eat() class Dog { //狗吃骨头(重写eat方法) public void eat() { System.out.println("狗狗喜欢啃骨头!"); } } class Cat { //猫吃鱼(重写eat方法) public void eat() { System.out.println("猫咪喜欢吃鱼!"); } } class Bird { //鸟吃虫子(重写eat方法) public void eat() { System.out.println("鸟儿喜欢吃虫子!"); } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.

2、使用多态

public class AnimalTest01 { //编写测试程序: //创建主人对象 //创建各种宠物对象 //调用主人的喂养方法feed(),喂养不同的宠物,观察执行结果。 //通过该案例,理解多态在开发中的作用。 //重要提示:feed方法是否需要一个参数,参数选什么类型!!! public static void main(String[] args) { //创建一个主人对象m1 Master m1 = new Master(); //使用多态,向下转型 将传过来的宠物信息转为对应类型 System.out.println("第一种方式输出:"); //第一种方式输出 m1.feed(new Dog()); m1.feed(new Cat()); m1.feed(new Bird()); System.out.println("第二种方式输出:"); //第二种方式输出 Dog zangao = new Dog(); m1.feed(zangao); Cat bosi = new Cat(); m1.feed(bosi); Bird yingwu = new Bird(); m1.feed(yingwu); } } //主人类 //主人类:Master //主人应该有喂养的方法:feed() //主人类中只提供一个喂养方法feed(),要求达到可以喂养各种类型的宠物。 class Master { //无参构造 public Master() { } //使用父类方法传参 (传入的参数可以通过继承关系通过父类Pet找到子类) public void feed(Pet pet) { pet.eat(); } } //宠物类:Pet class Pet { public void eat() { //宠物吃食物 System.out.println("宠物喜欢吃宠物食物!"); } } //宠物类子类:Dog、Cat、Bird 子类均继承父类Pet 使用多态的前提:子类继承父类 //宠物应该有吃的方法:eat() class Dog extends Pet { //狗吃骨头(重写eat方法) public void eat() { System.out.println("狗狗喜欢啃骨头!"); } } class Cat extends Pet { //猫吃鱼(重写eat方法) public void eat() { System.out.println("猫咪喜欢吃鱼!"); } } class Bird extends Pet { //鸟吃虫子(重写eat方法) public void eat() { System.out.println("鸟儿喜欢吃虫子!"); } }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.

使用多态相比较不使用多态的优点:

扩展性更强,如果需要添加新的宠物类型,例如:猪、蛇等使用多态时,仅仅需要添加宠物类并继承宠物类即可不使用多态时,除了添加宠物类,还需要在主人类中添加不同参数的feed方法

本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

游戏开发打造编程基础 - 入门到进阶实战课程欢迎加入我们的游戏开发旅程,一个专为编程新手设计的实战课程。本系列课程旨在利用游戏开发作为有趣的载体,引导学员从编程的基本概念入手,逐步深入到具体的语言应用。无论你是刚接触编程的新手,还是有一定基础想要进一步提高的学员,课程都将为你量身打造。通过精心设计的16个不同游戏项目,你将逐步学会如何运用H5技术结合JavaScript、HTML和CSS3进行前端开发,并掌握Java和MySQL负责后端的构建。不仅如此,我们还涉及了Python及其库Pygame来进行数据分析和游戏开发。从HBuilder到IDEA2018,从微信小程序到跨平台框架,我们的课程内容和实践项目将带你全面理解和应用这些工具,帮助你在游戏设计的有趣过程中,加深对编程语言的理解和掌握。

JavaScriptHTML5CSS3JavaMySQL

大学生Java开发实战与思维突破本课程专为大学生及编程新手设计,旨在解决学习Java开发过程中的常见问题。课程不仅传授Java基础知识,更重视培养从0到1的突破能力,教授如何高效学习、解决问题。吴老师将分享实战经验,引导学生理解企业需求,优化学习策略,提升自主学习能力。通过29个课时,学生将掌握Java关键知识,学习编码技能,并通过结课考试检验学习成果。

Java编程基础学习方法问题解决企业需求分析

提问和评论都可以,用心的回复会被更多人看到 评论

发布评论

相关文章

游戏开发入门:从零到精通编程技能本课程适合编程新手及有基础的开发者,旨在通过创造性游戏项目来提升对于前端、后端及数据分析编程语言的理解。针对零基础学员,课程推荐结合基础语法书籍,以实际的游戏项目为载体,通过实践加深对H5, JavaScript, CSS3, Java和MySQL等技术的掌握。此外,课程还涵盖了数据分析入门,重点教授Python 3.7.7和Pygame。伴随本课程,学员会逐步完成16种类型的游戏开发项目,如五子棋、贪吃蛇等,并通过IDEA 2018、Hbuilder和谷歌浏览器等工具进行跨平台开发,比如使用Uni-app和微信小程序进行H5手机游戏开发,从而全面提升编程语言的应用能力。

游戏开发编程入门H5JavaScriptCSS3

Java 多态:灵活编程的关键 java多态

多态 Java 父类

多态 1、多态是指同一行为不同对象会产生不同结果。2、多态形成的条件:(1)虚函数的重写(重写该函数的实现)(2)父类指针或者引用调用该函数a、虚函数:被virtual修饰的函数,父类函数前必须写,派生类不做要求,但建议写上。注:virtual无法修饰静态函数       虚函数重写要做到三同:      函数名参数与返回类型相同&n

虚函数 多态 虚表

C++多态 多态的概念多态(Polymorphism)是面向对象编程中的一个重要概念,它允许同一类型的对象在不同的上下文中表现出不同的行为。多态性有两种主要形式:编译时多态(静态多态性)和运行时多态(动态多态性)。编译时多态可以看成是函数重载和运算符重载,之前的文章已经涉及过,不再赘述;所以,下面所提到的多态,都指的是运行时多态。多态的定义及实现多态的构成条件多态是在不同继承关系的类对象,去调用同一函数,产

虚函数 派生类 多态

java 多态面试 # Java多态面试## 1. 引言在Java面试中,多态是一个被广泛提及的概念。多态是面向对象编程中的重要原则之一,它允许不同的对象对同一个方法做出不同的响应。理解和掌握多态对于成为一名优秀的Java开发者至关重要。本文将详细介绍Java中的多态概念、实现方式以及应用场景,并通过代码示例来帮助读者更好地理解和应用多态。## 2. 多态概念多态是指同一个类型的对象,在不同的情况下表

多态 ci sed

Python多态例题 # Python中的多态及其应用## 引言在面向对象编程(OOP)中,多态是一种非常重要的特性。它允许不同类的对象以相同的方式进行操作。多态的好处在于它提高了代码的灵活性和可扩展性,使得我们能够以统一的方式对待不同类型的对象。在这篇文章中,我们将探讨什么是多态,通过实例代码来解释其原理,并展示如何在实践中应用多态。## 什么是多态多态的字面意思是“多种形态”,在编程中,它表示相同的操作

多态 子类 Python

Java多态面试题 java多态例题 按要求编写Java程序:(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);(2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方法时,要求计算1到n的和;(3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口方法时,要求计算n的阶乘(n!);(4)编写测

java 多态 Test ide

Java实验报告多态 java多态例题 下面要给大家分享的是几个比较经典也很简单的java多态例题,感兴趣的小伙伴可以一起来通过下面的文章了解一下,对于java面试还是很有帮助的呢。1、多态分类多态分成了2种,一个是编译时多态,另外一个是运行时多态。编译时多态-方法重载。2、运行时多态存在的三个必要条件是什么?(1)、要有继承,还包括了接口的实现(2)、要有重写(3)、父类引用指向子类对象3、多态的好处是什么?主要有五大好处,分别是可替

Java实验报告多态 java多态练习题 多态 超类 System

JAVA多态实验结果分析 java多态例题 一、代码如下:class A { public String show(D obj)...{ return ("A and D"); } public String show(A obj)...{ return ("A and A"); } } class

JAVA多态实验结果分析 多态 子类 System 父类

java 多态 笔试 java面试什么是多态 多态是同一个行为具有多个不同表现形式或形态的能力,它也是对象多种表现形式的体现。本文为大家整理汇总了,近年来比较常见且典型的Java多态面试题。当然,本次对面试题的总结整理,更加注重大家对于多态知识的掌握,而不仅仅只是对面试的应付。每道面试题后面都会附上相关问题的答案和分析,让大家充分理解相关知识点。1、Java 中实现多态的机制是什么?靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例

java 多态 笔试 java多态深入理解面试 多态 Java System

java多态的例题 Java中的多态是一种面向对象编程的特性,它允许一个变量或对象引用可以指向不同类型的实例,并在运行时动态地调用相应类型的方法。多态可以提高代码的可复用性、可扩展性和灵活性,是Java程序设计的重要概念之一。本文将详细介绍Java中的多态以及如何实现多态。多态的概念多态(Polymorphism)是一种面向对象编程的基本特征,它指的是同一个类型的对象,在不同的情况下有不同的表现形式和行为。具体来说,

java多态的例题 java jvm 开发语言

java eunm 继承 多态 java继承多态经典例题 目录1、继承2、多态-继承3、多态-抽象4、多态-接口1、继承1、成员public类型的成员会被继承private 类型的成员不会被继承子类是无法覆盖掉父类的实例变量的。2、重写重写父类的方法,相当于重新定义该方法。如果你想要重新定义该方法还想要继续运行父类该方法的行为,那么需要运用super。3、final被 final修饰的类和方法不能被继承。2、多态-继承多态最强的地方就是,引用类型可以是实

java eunm 继承 多态 继承 多态 抽象 接口

java多态面试回答 java多态总结 *多态:1.一个对象在不同情况下的多种状态。 2.父类型定义引用,引用执行子类型的堆空间。 *多态前提:两个对象之间一定要有关系 即 1.继承关系; 2.实现关系(接口)。 *分析对象状态: 1.父类有,子类无:调用的是父类的方法; 2.父类有,子类也有,即子类重写

java多态面试回答 java 多态 父类 System

Java继承多态编程题 java继承和多态例题 一、面向对象1、谈谈对java多态的理解? 多态是指父类的某个方法被子类重写时,可以产生自己的功能行为,同一个操作作用于不同对象,可以有不同的解释,产生不同的执行结果。多态的三个必要条件:继承父类。重写父类的方法。父类的引用指向子类对象。什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同

Java继承多态编程题 java jvm 开发语言 多态

java中多态典型例题 一、什么是多态——多态是面向对象三大特征最核心的步骤,从某种意义上可以认为,封装和继承就是为多态准备的。概念:允许不同类的对象对同一消息作出不同响应。在Java语言中,接口的多种不同的实现方式即为多态。 二、多态的分类1.编译时多态(设计时多态):编译器在编译状态,就能对不同行为进行区分,通常用方法重载来实现。2.运行时多态:直到Java程序运行时,系统才能够根据实例方法的类型动态决定调

java中多态典型例题 多态 抽象类 接口 子类

java实验题 继承多态 java继承和多态例题 面向对象2 继承和多态 :继承 定义动物类(Animal) 成员变量 名称 name颜色 color成员方法 吃  eat()   打印格式: X色的Tom(name属性)动物在吃东西要求: 成员变量不带权限修饰符,方法是公共权限的.定义猫类(Cat),继承Animal类 成员方法: 抓老鼠(catchMouse())

成员方法 赋值 输出格式

java继承和多态例题 java继承和多态试题 一、Java1.封装、继承和多态这也是面向对象语言的三大特征。1.1 封装:封装就是隐藏对象的属性和实现细节,仅对外开放接口,控制程序中属性读和修改的访问级别,将对象和操作封装成一个抽象得类,形成一个整体。封装的目的:增强安全性、简化编程,使用者不必了解其内部细节,只需要通过外部接口来使用类的成员。1.2 继承(extends关键字): 就是子类继承父类的特征和行为,即可以使用现有类的特征和功能,

java继承和多态例题 java 数据结构 mysql spring

多态java面试题 java多态实验 一、实验目的: 理解类的多态性,掌握方法的继承、重载和覆盖,掌握如何从键盘输入数据以及多重循环的使用。二、实验环境:       Windows下java SE。 三、实验内容:(一)类的多态性练习1.    理解类的多态性类的继承发生在多个类之间,而类的多态只发生在同一个类上。

多态java面试题 System 构造方法 java

java继承多态经典例题 java实验五继承与多态 目录前言:1.继承1.1继承的概念1.2继承的语法1.3父类成员访问1.4super关键字1.5super和this1.6继承关系的执行顺序1.7继承方式1.8final关键字2.继承与组合3.多态3.1多态的概念3.2多态实现的条件4.重写4.1重写的概念4.2方法重写的规则4.3重写和重载的区别5.静态绑定6.动态绑定7.向上转型8.向下转型结束语:前言:这次小编与大家分享一下Java中的继承

java继承多态经典例题 java 开发语言 父类 子类

JAVA题继承多态编程题 java继承和多态例题 第1关:深入理解继承与多态涉及到的概念1、关于Java编程中的继承的理解,不正确的有A、继承是实现复杂类设计的一种方案。B、继承,意味着子类不用重复代码,就可以拥有父类定义的方法成员和数据成员,并可以增加新的数据成员和方法成员。C、子类没有显式地定义构造方法,则会默认继承父类的全部构造方法。D、一个子类可以继承自多个父类E、若一个类定义时不带关键字extends,则它继承Obj

JAVA题继承多态编程题 java 抽象类 多态 ide

Java 继承与多态 编程题 java继承和多态例题 前言学习面试题进步很快,但也是个日积月累的过程,一起坚持吧。一、面向对象的特性?封装:利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的个体,隐藏内部的细节,暴露出一些对外接口来与外部发生联系。用户无需知道内部的细节,但可以通过对象暴露出的接口来访问对象。继承:IS-A关系,子类继承父类的非private的属性和方法,子类可以完全替代父类。父类引用指向子类对象称为 向上转型

Java 继承与多态 编程题 java jvm 开发语言 抽象类

button阴影属性Androidstudio box-shadow在实现案例之前先了解css的阴影属性box-shadow,该属性可以为盒子设置阴影,它有五个参数,X轴偏移量、Y轴偏移量、模糊半径、扩散半径和颜色。box-shadow文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/box-shadow假设给一个盒子设置阴影:.shadowBox{ width: 100px;

css 3D 偏移量

echarts 设置series公共样式 Echarts 自定义系列1. 官方2. 代码3. 效果1. 官方官方例子:https://www.echartsjs.com/examples/zh/index.html#chart-type-custom官方手册:https://www.echartsjs.com/zh/option.html#series-custom2. 代码代码上有详细的解释<!DOCTYPE html> &

echarts 自定义 提示框 ico

lvgl 运行demo 文章目录一. LVM的概述1.1LVM机制的基本概念PV:物理卷VG:卷组LV:逻辑卷PE:物理区域二 . LVM的管理命令LVM操作步骤创建物理卷,创建卷组,创建逻辑卷逻辑卷扩容操作三 . 磁盘配额2.1 磁盘配额概述实现磁盘配额的条件Linux磁盘限额的特点2.2 启动磁盘配额支持2.3 编辑用户和组账号的配额设置一. LVM的概述1.1LVM机制的基本概念PV:物理卷在逻辑卷管理系统最底层,

lvgl 运行demo linux 运维 网络 逻辑卷

python代码疾病模型预测 医疗花费预测方法介绍分别通过全手写不调包实现随机森林、全手写不调包实现线性回归、借助 scikit-learn 包实现 GBDT、SVR、LassoRegression、决策树模型来求解该问题,使用 randomizedSearchCV、GridSearchCV、手动调参三种方式进行模型调参,并对 RandomForest、GBDT、DecisionTree、SVR、LinerRegression

python代码疾病模型预测 #python #机器学习 #决策树 #医疗花费预测

iis如何设置session会话过期时间 ASP.NET提供了5种会话状态选项: InProc StateServer SQLServer Custom Off   1. InProc InProc选项支持在进程内保存会话状态,实际上是在w3wp.exe工作进程中保存会话状态。这意味着保存会话状态数据将分别保存在每台服务器中,因此其他服务器无法访问当前服务器会话状态数据。这还意味着一个应用程序池回收操作将导致会话状态的丢失。在不

会话状态 解决方案 服务器

相关知识

java特性封装、抽象、继承、多态理论
java多态实现电子宠物系统
Java笔记:多态polymorphic
编写Java程序,以继承和多态思想模拟饲养员喂养不同动物的不同行为
java 多态
多态
解析java多态经典习题
Java猫和狗(继承,多态,抽象,接口版)下
(java)多态
Java猫和狗(继承,多态,抽象,接口版)上

网址: java多态 面试 java多态例题 https://m.mcbbbk.com/newsview1218715.html

所属分类:萌宠日常
上一篇: 骑士查理王小猎犬的饲养方法(建立
下一篇: 宠物饲养盆的制作方法