java实现多态的两种方式(接口、抽象类)

JAVA实验三 抽象类的继承和接口的实现 (多态) 题目要求: 1.编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义Gymnastics类和School类,它们都是ComputerAverage的子类,Gymnastics类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分。School中计算平均分的方法是直接是总分除以总科目。 要求:定义ComputerAverag 阅读详情

抽象类实现多态:
父类对象指向子类对象,可调用子类的重写方法。
接口实现多态:
接口对象指向实现类对象,可调用实现类的重写方法
以下就是生活中两种多态的实例,**抽象类是模板,接口是功能。

**描述:
接口、抽象类实现多态图
Door.java 抽象类

package com.dialogd.polymorphic;
//抽象类,抽象类是一种模板
public abstract class Door {
	//开门的方法
	public abstract void open();
}

IFace.java 接口1

package com.dialogd.polymorphic;
//人脸识别的功能,接口是功能时
public interface IFace {
	//人脸识别的功能
	public void checkFace();
}

IHander.java 接口2

public interface IHander {
	//指纹识别功能
	public void checkHander();
}

SafeDoor.java

public class SafeDoor extends Door implements IHander {

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("普通安全门开门...");
	}

	@Override
	public void checkHander() {
		// TODO Auto-generated method stub
		System.out.println("普通安全门的指纹识别...");
	}
}

SuperDoor.java

public class SuperDoor extends Door implements IHander,IFace {

	@Override
	public void open() {
		// TODO Auto-generated method stub
		System.out.println("超级安全门开门...");
	}

	@Override
    	public void checkFace() {
    		// TODO Auto-generated method stub
    		System.out.println("超级防盗门的人脸识别...");
    	}
    
    	@Override
    	public void checkHander() {
    		// TODO Auto-generated method stub
    		System.out.println("超级防盗门的指纹识别...");
    	}
    
    }

Test.java

public class Test {
	public static void main(String[] args) {
		//抽象类实现多态
		Door door = new SafeDoor();
		//父类对象指向子类对象,可调用子类的重写方法
		door.open();
		door = new SuperDoor();
		door.open();
		

		//接口实现多态
		IHander iHander = new SafeDoor();
		//接口对象指向实现类对象,可调用实现类的重写方法
		iHander.checkHander();     
		
		iHander = new SuperDoor();
		iHander.checkHander();
		IFace iFace = new SuperDoor();
		iFace.checkFace();
	}
}

抽象类Door.java对子类(普通安全门)SafeDoor.java、(超级安全门)SuperDoor.java实现了多态。
接口IHander、IFace对是实现类SafeDoor.java、SuperDoor.java实现了多态。

把外部系统接到 SAP Build Process Automation 的两条路:前台直连与后台编排的完整范式 想把外部系统接入到你的【销售订单管理】审批流程,最稳妥的路径是:在流程里开一个,在 BTP 配好以为核心的 Destination,让前端经由approuter代理、后台通过 Cloud SDK 直连,任务处理用My Inbox或Task APIs,异步对接用。这套组合拳,既满足安全边界与运维规范,又能让前台与后台两个世界各取所需、自然衔接。SAP。 阅读详情

相关推荐

无人驾驶小车调试笔记(六)-- 车轮校准

简介:小车的动力完全来自于两个电机带动的车轮,在理想状态下,给两个电机同样的驱动参数,两个车轮会以同样的转速带动小车直线行驶,而实际情况是每个电机可能都会有个体差异,也就是说给予同样的驱动参数,表现出的转动速度会有些许不同,两个轮子的差速会导致车辆拐弯,后果就是给了直线行驶的控制命令,但是车走着走着就偏离了原本的方向,所以在开始控制之前,我们需要先平衡两个车轮的转速,保证在同样驱动参数下,两个车轮转速大致相同,也就是可以走直线。 车轮校准分为3步,测试、调整后再测试、保存参...

aibingjin的博客 1822

Java_4.使用接口和抽象类实现多态

"狗"和"猫"都是"动物"的子类,它们重写了"发出声音"方法,但是"狗"发出"汪汪"声音,"猫"发出"喵喵"声音。实现接口的类必须要提供这些方法的具体实现。接口的主要作用是实现代码的解耦,即接口定义了规范和约束,实现类需要按照接口的规范来实现接口中的方法。我们可以定义一个角色接口,包含所有角色所需实现的方法,比如攻击和防御,我们定义它的攻击和防御方法,然后在每个角色类中实现这些方法,以满足游戏的需求。,默认方法则是在Java 8中引入的,它们允许接口有默认的实现,而不需要实现类来提供具体的实现。

m0_74019992的博客 1392

Arcgis空间分布方向性分析

Arcgis空间分布方向性分析 一、标准差椭圆方法概述 空间分布方向性分析是指区域经济属性在空间分布上的轮廓和主导方向。 标准差椭圆法是分析空间分布方向性特征的经典方法之一,使用标准差椭圆可 从全局的、空间的角度定量解释经济要素空间分布的中心性、展布性、方向性和 空间形态等整体性特征,因其直观性与有效性已得到广泛应用,已成为 Arc GIS 空间统计模块的常规统计工具。SDE 方法生成的结果为一个椭圆,从其生 成算法来看,首先用平均中心来确定椭圆的圆心,然后由平均中心作为起点 对 X 坐标

端木宛白的博客家园 4万+

为什么使用多态?实现多态的有哪些方式?

实现多态的两种方式 一、什么是多态? 父类类型的变量指向子类创建的对象,使用该变量调用父类中一个被子类重写的方法,则父类中的方法呈现出不同的行为特征,这就是多态。 简单的来说编译时方法行为表现的是父类中的方法,运行时方法行为表现的是子类中重写该方法的行为特征 二、为什么使用多态? 1、实现代码的复用,避免代码的冗余; 2、...

weixin_42867975的博客 1万+

别再死磕GAN了!用PyTorch从零实现DDPM图像生成(附CIFAR-10完整代码)

本文详细介绍了如何使用PyTorch从零实现DDPM(Denoising Diffusion Probabilistic Models)图像生成模型,并在CIFAR-10数据集上进行训练和测试。通过对比GAN,DDPM展现出更稳定的训练过程和更高质量的生成效果。文章包含完整的代码实现、训练技巧和优化建议,帮助开发者快速掌握这一前沿的生成模型技术。

weixin_33720078的博客 631

CVPR 2024 LaTeX 模板实战:从匿名提交到图表排版的避坑指南

本文详细解析CVPR 2024 LaTeX模板的使用技巧,涵盖匿名提交设置、pdfLaTeX编译器选择、图表排版优化等关键环节。通过实战案例演示智能引用、公式编号、三线表制作等专业技巧,帮助研究者高效完成论文格式规范,规避常见排版错误。特别针对双栏格式下的图片定位、跨栏表格等复杂场景提供解决方案。

weixin_42561040的博客 454

接口多实现

接口 多实现 动态

u014365523的博客 7665

深入解析Apollo Lattice Planner:自动驾驶轨迹规划的核心算法与实践

本文深入解析了百度Apollo自动驾驶平台中的核心轨迹规划算法——Lattice Planner。文章详细阐述了其作为车辆“即时决策者”的工作原理,通过“采样-评估”的六步流程(Frenet坐标转换、状态采样、轨迹生成、硬约束过滤、代价函数打分及决策平滑),在复杂路况下实时规划出安全、舒适、高效的行驶轨迹。该算法是自动驾驶实现智能决策与精准控制的关键技术。

weixin_29090677的博客 831

java一个接口多个实现得调用

需要根据具体的应用场景和需求选择适合的方式来调用不同的实现类。在代码中,根据接口类型、条件判断、集合遍历或动态获取实例等方式,可以灵活地调用不同的实现类的方法。

yuanchengfu0910的博客 9952

基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示

基于C#通过PLCSIM ADV仿真软件实现与西门子1500PLC的S7通信方法演示

Robot_PLC_HMI_Automation 3161

【知识分享】什么是同轴传输线结构?

同轴传输线的几何形状由中心导体组,嵌在介电材料(Dielectric)中,并且,被连续的外导体所包围,也被称为屏蔽(Shield)。内外导体有相同的几何中心轴,因此得名同轴(Coaxial)。

一只豌豆象的博客 2372

初识JAVA抽象类与接口

实现JAVA多态的方式中可以通过抽象类实现抽象类中的抽象方法,和接口来实现在面向对象语言中,是来通过类来描述对象的,但是不是所有类都是用来描述对象的,如果一个类没有足够的信息来描述一个具体的对象时,这类就是抽象类。抽象方法:被abstract修饰,有方法名无方法体的方法拥有抽象方法的类是抽象类抽象类特点: 1、抽象类不能被实例化,如果被实例化,编译会报错无法通过。只有抽象类的非抽象子类可以创建对象2、抽象类中不一定包含抽象方法,但是包含抽象方法的类一定是抽象类3、抽象类中的抽象方法只是声明,不包含方法体即方

qq_59483610的博客 244

【全局路径规划模块全覆盖算法】(三)代码实现:Boustrophedon Cellular Decomposition Path Planning用珊格地图生成每个cell的覆盖路径

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对Boustrophedon Cellular Decomposition Path Planning用珊格地图生成每个cell的覆盖路径做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 1834

接口和抽象类的区别

接口关键字:interface 接口定义了你要实现某种功能的规范, 接口成员 1、接口的方法都是抽象方法,默认使用public abstract 修饰,不能修改。 2、接口的变量都是静态常量,默认使用public static final修饰,不能修改。 3、接口中的常量必须在声明时赋值,常量名称全大写。 接口的用法 接口不能被创建对象,接口中的抽象方法由实现类实现。实现类使用imple...

曰业而安的博客 6884

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

从头开始学java--抽象类&接口

java--抽象类&接口

puppet_master的专栏 858

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

接口和抽象类有什么区别

接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。 人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它. 所以,在高级语言上,一个类只能...

weixin_45606575的博客 728

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C++转Java笔记(1) --final修饰符、多态的转型、抽象类、接口类

这个专栏用来记录从C++转到Java这另一个重要面向对象语言过程中的区别与一些思考 final修饰符 在C++中,用const修饰对象保证了其在初始化后无法改变 (当然涉及到指针后又有一些小区别要注意) 而Java中对标的修饰词是final。 但是final除了能修饰对象使之无法被改变, (这部分可以完全继承const的知识,包括修饰指针(引用)时被引用对象可变这个特性) 还能修饰类(包括修饰类的成员函数): 修饰父类,那么父类无法派生出子类; 修饰父类的函数,能保证在继承父类后,无法重写此函数。 所以字面

Cake_C的博客 322

Java抽象类与接口

Java语言提供两种机制,用于定义允许多个实现的类型:抽象类(abstract class)和接口(interface)。 这里简要说明抽象类与接口的区别。

积跬步,至千里 341

抽象类、接口

接口 接口是对行为的抽象,不能被new,不能实例化 可以定义常量,常量都是公共的,静态的,不可变的,在声明常量的时候必须赋值,final修饰常量时必须赋值 ①:public static final int a = 1②:int a = 1 可以定义方法,方法都是公共的,抽象的 ①:public abstract 返回值类型 方法名(参数) ②:返回值类型 方法名(参数) 接口多继承接口,用extends关键字,不用实现其继承的抽象方法 接口被非抽象类实现,用implemen...

月下未来的博客 249

Java 抽象类与接口

自己的总结: 接口,定义若干个没有方法体的方法名即可,由实现该接口的类写方法体。 抽象类,定义没有方法体的方法,需要再该方法前注明abstract。也可以实现某些方法。 在继承或者实现的时候, 若是实现接口,则要实现接口的所有方法。缺一不可。 若是继承抽象类,则要实现抽象类的所有抽象方法。缺一不可。 举个例子 若是接口和抽象类都定义三个方法: public Str...

crus的博客 130

java 抽象类 变量吗_Java接口和抽象类的区别?(抽象类中可以定义变量)

简单来说, 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。 还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识...

weixin_34345947的博客 707

接口类和抽象类的区别 php,PHP中抽象类和接口的区别

一、区别:1、对接口的使用方式是通过关键字implements来实现的,而对于抽象类的操作是使用类继承的关键字extends实现的,当然接口也可以通过关键字extends继承;2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型);3、接口没有构造函数,...

weixin_39566914的博客 133

Java基础知识(九)抽象类&接口&多态&内部类

当多个类中出现相同功能,但是功能主体不同,这时可以向上抽取,但只抽取功能定义,不抽取功能主体。 abstract:抽象。只修饰类和方法,不能修饰变量。 1、抽象方法一定定义在抽象类中。 2、抽象类和抽象方法一定由abstract修饰。 3、抽象类不能用New创建对象,因为无意义。 4、抽象方法若要被调用,必须被重写子类中所有方法后建立子类对象调用,如果该子类只覆盖了部分,那么该子类还是一...

纸城的博客 257

实现多态的三种方法之抽象类和接口

实现多态的方法 多态性通过派生类重载基类中的虚函数型方法来实现。 可以用不同的方式实现组件中的多态性: 1.接口多态性。 2.继承多态性。 3.通过抽象类实现的多态性。 (继承在前边讲过,所以这里只讲抽象类和接口) 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类...

hgh1998的博客 3363

JAVA 多态、抽象类、接口

. 什么是多态? 2. 为什么使用多态? 3. 对象的转型? 4. 什么是抽象类? 5. 如何定义抽象类? 6. 抽象类的规则? 7. 什么是接口以及如何创建接口

lihao0245的博客 951

多态、抽象类、接口

抽象类是一种不能被实例化的类,通常用于定义一些通用的方法或属性,而具体的实现由子类来提供。抽象类可以包含抽象方法(没有方法体的方法)和具体方法(有方法体的方法)。public abstract class 类名{//属性//普通方法//抽象方法在Java中,接口(interface)是一种引用类型,它是一种抽象的类型,用于指定一组方法,而不去实现它们。接口是Java实现多重继承的一种方式,因为一个类可以实现多个接口,但只能继承一个类。接口中的方法默认是抽象的(即没有方法体),且默认是。

weixin_62192155的博客 1981
上一篇: 学生宿舍系统2
下一篇: 判断字符串中的字母大小写、数字
DialogD
博客等级 码龄9年 10粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值