接口和多态

多态(继承多态和接口多态、多态数组) 使用基类变量引用子类对象,或使用接口变量引用实现了此接口的对象。这其实就是多态编程。 多态编程的基本原理是:使用基类或接口变量编程。 在多态编程中,基类一般都是抽象基类,其中拥有一个或多个抽象方法,各个子类可以根据需要重写这些方法。或者使用接口,每个接口都规定了一个或多个抽象方法,实现接口的类根据需要实现这些方法。 因此,多态的实现分为两大基本类别:继承多态和接口多态。 阅读详情

接口

接口:初期理解,可以认为是一个特殊的抽象类

当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

class用于定义类

interface 用于定义接口。

接口定义时,格式特点:

1,接口中常见定义:常量,抽象方法。

2,接口中的成员都有固定修饰符。

常量:public static final 

方法:public abstract   接口中没有构造方法  接口中的方法只能是抽象方法/或者是default1(默认)方法、static(静态方法)和private(私有)方法。

default方法:默认方法不是抽象方法,用于接口更新,写入新的方法后,不用修改子类代码,实现类可以重写默认方法。

格式 public default void show(){};

记住:接口中的成员都是public的。

接口:是不可以创建对象的,因为有抽象方法。

需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。

否则子类是一个抽象类。

接口可以被类多实现,也是对多继承不支持的转换形式。java支持多实现。

------------------------------------------------------------------------------------------------------

多态

/*
多态的三个条件:
    1.要有继承/实现
    2.方法重写
    3.要有父类/接口引用指向子类对象
 */

public class Demo3 {
    public static void main(String[] args) {
        Animal a=new Dog();  //这种写法就是多态
        Dog d=new Dog();        //这种写法就不是多态
        a.eat();
    }
}

多态的成员访问特点:

1.成员变量的访问特点

        编译看左边(父类),运行时也看左边(父类)

        大白话父类有就用父类的,父类没有就报错了

2.成员本方法的访问特点

        编译看左边(父类),运行看右边(子类)

        大白话:子类复写父类方法,执行子类方法

public class Demo4 {
    public static void main(String[] args) {
        Fu f=new Zi();
        System.out.println(f.a);//打印结果是父类的10
        f.show();  //输出结果是子类的Zi
        /*
        成员变量:看父类,父类有就用 父类没有就报错
        成员方法:看父类有没有,父类没有就报错,父类要有才会去调用子类的方法
         */
    }
}

class Fu{
    int a=10;
    public void show(){
        System.out.println("Fu...");
    }
}

class Zi extends Fu{
    int a=5;
    @Override
    public void show(){
        System.out.println("Zi...");
    }

}

多态的好处和弊端:

好处:提高了程序的扩展性
具体体现:定义方法的时候,使用父类型作为参数,该方法就可以接受父类的任意子类对象。

弊端 不能引用子类的特有方法

多态的应用:

Animal(new Dog());相当于默认有一个Animal a =new Dog();

Animal(new Cat());相当于默认有  Animal a =new Cat();

--------------------------------------------------------------------------

如果在多态里想运用子类的特有方法 可以向下转型:

Instanceof 关键字:判断引用变量类型具体是什么类型

C# 多态性的实现: 继承和接口 通过父类引用子类的实现和接口引用实现接口的类,可以实现多态性,这是面向对象编程中非常重要的概念。 父类引用子类的实现: 允许我们使用父类的引用来指向一个子类的对象。这样做的好处是可以统一处理不同子类的对象,从而减少重复的代码。 当我们使用父类的引用调用方法时,实际上会调用子类重写的方法,这就是多态性的体现。这样的设计可以提高代码的灵活性和可扩展性。 接口引用实现接口的类: 接口引用是一种更抽象的方式,它允许我们统一处理不同实现了同一接口的类的对象。 通过接口引用实现类的对象,我们可以隐藏对象的具体类型 阅读详情

相关推荐

java继承和多态之接口

虚函数是Java多态性的一个重要体现,它使得子类可以根据自己的需要来实现抽象方法,从而实现不同的功能。Java 中的继承和多态是非常重要的概念,它们是 Java 面向对象编程的核心特性。方法重写是指在子类中重新定义父类中已有的方法,使得子类可以根据自己的需要来覆盖父类中的方法实现。总之,Java中的继承、多态和接口是Java面向对象编程的核心特性,它们使得Java语言具有更好的灵活性和可扩展性,可以方便地进行程序设计和维护。// 输出 "Woof!// 输出 "Meow!

911

接口&多态

接口和多态的概念理解和方法调用

Cream336的博客 600

el-table通过上下左右键移动光标

在Element Plus的el-table中包含el-input和el-select组件,要实现上下左右键控制光标位置,需要通过focus和blur跟踪判断当前是哪个el-input或el-select有焦点,当按键按下时,通过监听,计算下一个获取焦点元素的索引,通过focus方法将焦点切换至改元素。

秋思的博客 1350

JAVA 基础知识学习11

目录 目录 01接口的概念 02接口的定义 03接口的实现类 04接口中成员变量的特点 05接口中成员方法的特点 06实现类还是一个抽象类 07类和接口的多实现 08类在继承类的同时实现多接口 09接口的多继承 10接口思想 11接口和抽象类的区别 12多态概述 13多态调用的三种格式 14多态成员方法的特点 15instanceof关键字 16多态-向上转型 17多态-向下转型 18多态的好处和弊

吴杨的博客 764

STC8H硬件IIC从机模式实战:手把手教你驱动OLED屏幕(附完整代码)

本文详细介绍了如何使用STC8H单片机的硬件IIC从机模式驱动SSD1306 OLED屏幕,包括硬件连接、寄存器配置、中断处理和实际应用中的优化技巧。通过完整的代码示例和实战经验分享,帮助开发者快速掌握I2C通信协议和OLED屏幕驱动技术,提升嵌入式开发效率。

weixin_33747129的博客 336

RTT(RT-Thread)串口设备(RTT保姆级教程)

本章主要介绍串口设备在RT-Thread操作系统中应用层如何使用。关于串口设备的使用,我们只需要在应用层找到串口设备,然后去初始化,初始化完成以后就可以读写串口设备了。操作的方法在应用层,驱动是不需要我们去完成的,驱动已经在操作系统中提供了。

qq_25218501的博客 1万+

多态与接口

当已经在一个父类中写下一个方法,比如在shape中写下draw方法,可以在shape的子类中,用draw加回车快速重写draw方法。当我们引用的对象不一样,调用同一个重写的方法,表现得行为不一样,这种思想叫做多态。

lan_tian_yi_jiu的博客 1333

反激开关电源设计全解析:从CCM/DCM原理到PCB布局实战

开关电源作为现代电子设备的能量转换核心,其核心原理是通过高频开关动作实现高效的电能变换。反激拓扑因其结构简单、成本低廉且易于实现电气隔离,成为小功率离线式电源的主流选择。其技术价值在于通过变压器耦合实现能量存储与传递,解决了安全隔离与多路输出等关键需求,广泛应用于充电器、适配器及家电供电等场景。本文聚焦反激电路,深入剖析其CCM与DCM两种工作模式的原理差异及选型考量,并结合伏秒平衡定律与RCD钳位等热词,详解从变压器计算到MOSFET选型的完整工程设计流程。

weixin_31951365的博客 340

接口、 多态

接口、 多态

m0_48960643的博客 1345

实测对比:DINOv2、CLIP、ResNet在图像相似度任务上谁更强?(含Python代码与避坑指南)

本文通过实测对比DINOv2、CLIP和ResNet在图像相似度任务中的表现,提供Python代码实现与避坑指南。实验结果显示,DINOv2在精度上表现最佳,CLIP在多模态场景中优势明显,而ResNet则在计算效率上更优。文章还针对不同业务场景给出了具体选型建议,帮助开发者在图像搜索和版权检测等项目中做出更明智的技术决策。

weixin_30588381的博客 285

【教程4>第10章>第13节】基于FPGA的图像双边滤波开发——单通道双边滤波Verilog实现

本文介绍了基于Vivado 2022.2的单通道高斯滤波FPGA实现方案。主要内容包括:1)采用3×3窗口像素提取、高斯权值计算、exp指数运算等模块构建双边滤波系统;2)详细分析了Verilog HDL实现的顶层设计文件,包含窗口数据生成、指数计算、混合权重、归一化处理等关键模块;3)展示了图像双边滤波器的RTL结构图。该设计为后续实现RGB三通道图像高斯滤波及MATLAB联合仿真奠定了基础。

FPGA/MATLAB学习教程/源码/项目合作开发 261

多态和接口有什么区别和联系呢

多态和接口是Java中两个重要的概念,它们之间既有区别也有联系。

chengxuyuan66666的博客 979

Microsemi Libero使用技巧11——CoreUARTAPB RX管脚分配时不显示

调用串口IP核CoreUARTAPB,并例化到顶层设计,发现UART_RX管脚在进行管脚分配时没有显示出来,最后发现是CoreAPB3总线IP核配置不对导致,改为如下配置后正常。

whik1194的博客 757

多态和接口

4抽象类必须被继承,并且继承之后子类中要重写父类中的抽象方法,否则子类也是抽象类,必须用abstract修饰。例如如果父类被重写的方法的访问权限是被public 修饰的,那么子类中重写的方法就必须声明用public 不能低于public。:一个类如果被abstract修饰成为抽象类,抽象类中如果有被abstract修饰的方法被称为抽象方法,抽象方法不用给出具体的实现。:重写是子类对父类非静态、非private 修饰、非final 修饰、非构造方法等的实现过程进行重新编写,返回值,方法名,参数列表都相同。

2301_82337429的博客 629

SpringBoot + MyBatis-Plus 高效实现数据变更记录:从注解到通用审计方案(附源码)

*** 数据变更审计插件* 拦截增删改操作,自动记录变更日志*/@Component@Resource/*** 拦截SQL执行*/@Override/*** 数据变更审计插件* 拦截增删改操作,自动记录变更日志/*** 拦截SQL执行。

2601_94871597的博客 556

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

理解继承多态和接口多态

一、继承多态. 1.疑问:Calendar是抽象类,怎么可以实例化对象呢? 2.解答:不是Calendar的实例化对象,在这里实现了继承多态。Calendar.getInstance();实际上是new Calendar抽象类的一个子类。等号左边为抽象类,等号右边为具体的子类。抽象父类引用指向子类。 3.查看源码: 二、接口多态 1.疑问:在创建集合时为什么不直接采用上面这种形式呢? 2.解答:这里使用到了集合多态,等号左边为接口,等号右边为接口的实现类。接口引用指向实现类。这样的好处是如果后期

qq_44122635的博客 971

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java系列(18)——继承多态和接口多态

继承多态 我们通常使用抽象类来抽象要使用多态的方法。 特点: 必须要有继承关系,在抽象类中可以定义多态的抽象方法,通过子类来继承这个抽象然后复写抽象类中的抽象方法已达到多态的效果。 多态子类的实例可以赋给父类的引用。 示例代码: //抽象父类 abstract class Teacher { String name; public abstract void TeachLesson(...

魏宇轩 1692

OV9734 DATASHEET,完整规格书

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

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java中的多态和接口

day12

weixin_52071901的博客 1846

Java之接口和多态

接口 接口类概念: 接口只是描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类重写来完成。 接口的定义: 与定义类的class不同,接口定义时需要用到interface关键字。 格式:public interface 接口名{ 抽象方法1,抽象方法2,.....},即:仅含有抽象函数,且修饰符为public修饰,也可定义变量,但变量必须有固定的修饰符修饰。

xiaoyuxianshenging的博客 332

多态、抽象类和接口

目录 一、多态 二、抽象类 三、接口 一、多态 1. 多态的概述 某个事物,在不同的时刻表现出来的不同状态。 eg: Cat c=new Cat(); Animal a=new Cat(); 猫可以是猫类型,即 猫 m=new 猫(); 同时猫也是动物的一种,即 动物 d=new 猫(); 2. 多态的前提 1. 要有继承关系; 2. 要有方法重写,否则就失去了意义。 3. 要有父类对象引用指向子类对象:eg:父 f=new 子()...

qq_56930747的博客 2378
上一篇: 内部内的使用和Lambda表达式
下一篇: 时间和日期类的实际运用(巩固用)
Figure_TheKeyboard
博客等级 码龄5年 6粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值