Day13 多态、Object、抽象、接口

Java学习day12-13抽象类和接口 抽象类和接口今日目标1.如何理解抽象类2.抽象类的语法规则3.如何理解接口4.接口的语法规则6.课堂案例:总结: 今日目标 抽象类 接口 1.如何理解抽象类 1.为什么有抽象方法?–什么背景之下诞生了抽象方法 2.如何使用抽象方法?–有哪些需要遵守的规则 多态:开枝散叶 抽象方法:父类(定目标)和子类(实现目标)的分工 Fu fu=new ZI(); “用进废退” 多态的领域 重写的方法被子类覆盖 不可能被调用到 索性去掉方法体 退化为抽象方法 相对于对象而言,类本身就是一个抽象的概念,为了更进一步体现出类 阅读详情

1. 面向对象

1.1 多态

1.1.1 软件设计六大原则

1 单一职责原则

原则思想 : 一个方法只做一件事,一个类只负责一个职责,这样当前职责改动,不会对其他程序产生影响

常识原则,几乎所有程序员都会遵循这个原则

优点 : 降低类和类之间的耦合度,提高可读性,可维护性,可扩展性,降低可变性的风险

2 里氏替换原则

原则思想 : 能使用父类的地方,就一定可以使用子类

子类还可以扩展父类的功能,但是不能更改父类的功能,并且子类还可以有自己特有的功能

优点 : 增加了程序的健壮性,即使有了新的子类,原子类不受影响,可以正常执行

3 依赖倒置原则

原则思想 : 高层次不应该依赖低层次,都应该依赖于抽象

优点 : 拥抱多种变化,可以减少需求变化带来的工作量

4 接口隔离原则

原则思想 : 类和接口之间应该建立在最小接口上

5 迪米特法则

原则思想 : 又称为最少知识原则,一个对象尽可能的少了解其他对象

一个类中尽量减少对其他类的依赖

6 开闭原则

原则思想 : 对修改关闭,对扩展开放

尽量通过扩展软件实体来解决需求的变化,而不是通过修改已有的代码来完成变化

1.1.2 是什么

什么是多态:

        多态就是里氏替换原则的一种体现

                 能使用父类的地方就一定可以使用子类

       多态  就是  父类引用指向子类对象

        

  父类引用:使用父类类型 创建的引用类型变量

                  指向:通过这个引用可以找到谁

                  通过父类创建的一个引用类型变量 ,找到了子类的对象

                  父类类型   变量名  =   new   子类();

                  Animal a = new Cat();多态

1.1.3 怎么用

 多态的几种形式:

           1 直接多态: 父类 变量 = new 子类();

           2 形参/实参: 参数列表用父类声明,调用方法 传递子类对象

           

           3 返回值多态: 返回值类型是父类类型,但返回的对象 是子类对象

         

         

          

           

1.1.4 为什么这么用(优点)

1.1.5 缺点

丢失子类特有的属性

1.1.6 向下转型

多态:又叫向上转型

            子类到父类  是向上

             父类到子类   是向下

         想要向下转型  必须先发生向上转型

1.1.7 多态属性调用

多态进行属性调用:

           1.父类没有的,都调用不了(因为多态缺点,丢失子类特有的属性) 

           2.父类有的,子类没有的, 执行父类

           3.父类和子类都有,除了成员方法执行子类,其他全部执行父类(因为只有成员方法可以覆写) 

1.1.8 比较隐秘的多态

this保存的是子类的内存地址,因为用哪个对象调用的这个方法,this就指向谁

 this是对象中第一个成员变量保存当前对象的内存地址

既然是变量肯定有类型,可以保存当前类对象的类型有

1当前类类型(this所在的类就是当前类)

2父类类型(多态缺点:丢失子类特有的属性)

而this可以调用当前类中特有的属性所以this的类型应该是当前类类型

this在哪个类哪个类就是当前类而现在这个程序this在Sup_04类中
所以就等于是Sup_04 this;

而谁调用的这个方法this就指向谁这个m1方法最终是由new Sub_04()调用的.所以this指向new Sub_ 04()

相当于: Sup_04 this = new Sub__04();

总结:通过子类,调用父类的方法的时候此时父类这个方法中的上下文环境就是多态环境

1.2 抽象

1.2.1 概述

抽象:抽象类往往表示设计中得出的抽象概念

比如动物,它只是一一个抽象的概念并没有具体的一个东西叫动物,所以它并不能代表-一个实体

这种情况下我们就适合把他作为一一个抽象类

比如Animal表示所有动物,但是没有一个具体东西叫动物,

它可以作为所有动物的祖类,可以把所有动物共有的属性和行为保存到Animal中

然后再有Cat , Dog之类的具体的动物类,都继承Animal类并且Cat还具有他们特有的属性

那么此时Cat表示猫,而一个Cat对象就表示具体的某一个猫

但是Animal不应该有对象因为没有一个东西是叫动物,动物是-一个统称

那么此时Animal就适合作为抽象类

abstract :修饰符修饰的类是抽象类,修饰的成员方法是抽象方法

抽象方法 :使用abstract修饰的成员方法并且该方法没有方法体,就是没有大括号

抽象类:不能被实例化,只能用于被继承

abstract :修饰符修饰的类是抽象类修饰的成员方法是抽象方法

抽象方法:使用abstract修饰的成员方法,并且该方法没有方法体,就是没有大括号

抽象类:不能被实例化只能用于被继承

-般抽象类中,有功能的定义,但是没有功能的实现要求必须让子类覆写

比如我们的Animal和Cat使用多态可以降低耦合度但是Animal中,只需要有move的方法不需要有具体的实现

因为具体实现应该由Cat实现但是Animal中还必须得有,要么多态使用不了,丢失子类特有的属性

但是如果Animal中写了move方法,那么子类中覆写不覆写都可以根本没办法强制要求

这个时候可以再Animal中编写-个抽象方法但是抽象方法必须要在抽象类中的

所以继承这个抽象类之后,必须要实现抽象类中的所有抽象方法

实现:子类对抽象方法加上方法体完成功能实现

含有抽象方法的类型-一定是抽象类正确

抽象类中-定含有抽象方法错误

抽象类和普通类几乎完全一样,只有两点不同

1不能创建对象

2可以有抽象方法

非抽象类继承抽象类必须实现所有的抽象方法

抽象类继承-个抽象类可以实现0~N个抽象方法
 

1.2.2 语法

1.2.3 注意

abstract 和 final 不能同时出现

abstract 修饰的类 是抽象类 , 就是用来被继承的  而 final 修饰的类  不能被继承

abstract 修饰的方法 是抽象方法, 而抽象方法 就是用来被覆写实现的,而final、修饰的成员方法 不能被覆写

1.3 接口

1.3.1 概述

引用数据类型:类数组接口

接口是- -种引用数据类型,可以看做是一个特殊的类是为了解决java中单继承功能变弱问题

个类只能继承一个父类但是可以实现N个接口

 1 [修饰符] interface接口名{}
*

2 1.8之前接口中只有抽象方法和常量(public static final)

-2147483648~2147483647

3接口中public static fian!还有abstract都可以省略(接口中没有变量只有常量写个方法就是抽象方法)

 4接口没有构造方法,不能创建对象

5一个类实现一个接口,需要实现所有的抽象方法

6一个抽象类实现- -个接口,需要实现0~ N个抽象方法
 

1.3.2    1.8 接口新特性

新特性:

1.8之前只能有抽象方法

1.8开始可以有静态方法和默认方法(可以理解为类中的成员方法)

1.9开始支持private方法
 

1.3.3 怎么用

多实现

类和接口直接是多实现保留类继承,所以当抽象类和接口都能满足需求的时候,优先使用接口

一个非抽象类实现接口后,需要实现所有抽象方法

一个抽象类实现接口后需要实现0~ N个抽象方法
 

湿式双离合器自动变速器simulink建模与仿真 随着汽车工业的不断发展,自动变速器在提高汽车性能、驾驶舒适性和燃油经济性等方面发挥着越来越重要的作用。湿式双离合器自动变速器(Wet Dual-Clutch Transmission,简称 WDCT)作为一种先进的自动变速器技术,具有换挡速度快、动力传递平稳、燃油经济性好等优点,被广泛应用于各类汽车中。结构组成湿式双离合器自动变速器主要由双离合器、齿轮传动系统、液压控制系统和电子控制系统等部分组成。双离合器:由两个独立的离合器组成,分别控制奇数挡和偶数挡。通过切换两个离合器的工作状态,可以实现快速换挡。 阅读详情

相关推荐

UE5音效系统全解析:从Sound Cue到MetaSounds的实战指南

在游戏开发中,音频系统是构建沉浸式体验的关键技术之一。其核心原理在于通过数字信号处理(DSP)和空间音频渲染,模拟真实世界的听觉感知。传统音频管线通常基于静态资源播放与混合,而现代引擎则引入了程序化音频生成与动态调制技术,这极大地提升了音频的互动性与表现力,使其能够实时响应游戏状态变化。这一技术革新对于开发开放世界、VR及3A级游戏尤为重要,它能实现风吹草动皆有不同声响、音效随环境动态变化的细腻效果。本文聚焦虚幻引擎5(UE5)的音效系统,深入剖析其新旧两套核心架构:稳定高效的Sound Cue、Sound

weixin_31179927的博客 331

day09 多态抽象类接口

1:final关键字可以干什么?有什么特点? 2:final关键字的面试题? 3:多态是什么,前提是什么? 4:多态中成员访问的特点? 5:多态的好处及弊端?如何解决多态的弊端? 6:什么是向上转型?什么是向下转型? 7:多态练习 8:抽象类概述及其特点? 9:抽象类成员特点? 10:抽象类练习? 11:抽象类的小问题 12:接口的概述及其特点? 13:接口的成员特点? 14:接口的练习 15:抽象类和接口的区别?

喝醉酒的小白 4232

避坑指南:CesiumLab+ENVI处理Sentinel-2影像数据的完整流程

本文提供了一份详细的避坑指南,完整介绍了如何利用CesiumLab和ENVI工具链,将Sentinel-2卫星影像处理成可供Cesium三维地球引擎加载的离线瓦片数据。内容涵盖数据获取、SNAP预处理、ENVI影像增强合成以及CesiumLab切片配置等全流程实战步骤与关键参数优化,旨在帮助工程师高效构建自主可控的高精度离线地图服务。

weixin_29248653的博客 291

Java学习笔记-Day13 Java多态、抽象和接口

Java学习笔记-Day13 Java多态、抽象和接口一、多态1、简介2、分类3、作用4、必要条件5、向上转型和向下转型5.1、向上转型5.2、向下转型二、抽象1、抽象类2、抽象方法三、接口四、接口和抽象类的差异     一、多态   1、简介   Java中多态性指允许不同类的对象对同一消息做出响应。即同一个方法可以根据不同类的对象而采用不同的行为方式。   2、分类   (1)编译时多态:主要是方法的重载,通过参数列表的不同来区分不同的方法。 (2)运行时多态:主要有继承多态和接口多态,在运行期间判断引

qq_42141141的博客 806

第3章 zynq MII转GMII的配置和EMIO UART0的配置

本文介绍了在Vivado工程中实现MII转GMII接口适配的过程,同时配置EMIO UART0接口。主要内容包括:修改PS IP核添加UART0接口,使用concat IP核进行信号整合,调整GMII信号引脚连接,添加约束文件定义引脚映射,并最终生成bit流文件。通过详细的操作截图和TCL约束代码,展示了从硬件配置到生成可编程文件的完整流程,为Zynq平台开发提供了实用参考。

qq_36517072的博客 903

深入解析Dataloader中shuffle机制与随机种子对模型训练的影响

本文深入探讨了Dataloader中shuffle机制与随机种子对机器学习模型训练的影响。通过实际案例分析,详细解释了数据打乱顺序的必要性、随机种子的正确设置方法以及两者协同工作的原理,帮助开发者避免常见陷阱并提升模型训练效果。

weixin_29166013的博客 141

Day_14 多态、抽象、接口、Object、类关系

Day_14 多态、抽象、接口、Object、类关系 Day13 多态、抽象、接口 面向对象 1.1 多态 1.1.1 软件设计六大原则 1 单一职责原则 原则思想 : 一个方法只做一件事,一个类只负责一个职责,这样当前职责改动,不会对其他程序产生影响 常识原则,几乎所有程序员都会遵循这个原则 优点 : 降低类和类之间的耦合度,提高可读性,可维护性,可扩展性,降低可变性的风险 2 里氏替换原则 原则思想 : 能使用父类的地方,就一定可以使用子类 子类还可以扩展父类的功能,但是不能更改父类的功能,并且子类

weixin_45134615的博客 220

ESP32-CAM与TFT屏幕实时图像传输:Arduino环境下的OV2640驱动实践

本文详细介绍了在Arduino环境下实现ESP32-CAM与TFT屏幕实时图像传输的完整实践方案。重点解析了OV2640摄像头的驱动配置、硬件引脚连接、TFT屏幕初始化及图像显示优化技巧,帮助开发者快速构建稳定的实时图像显示系统,适用于物联网监控、门禁系统等场景。

cuda7parallel的博客 115

day12 多态、抽象类、接口

多态 一、什么是多态:父类引用指向子类对象(父类型声明的引用类型变量可以找到子类的对象,也就是子类对象的地址给到了父类引用类型的变量) 多态又叫向上转型 二、多态是发生在赋值的时候,多态发生的几种形式: 1、直接多态(直接声明的多态) 父类 变量=new 子类(); 2、形参和实参多态 方法参数定义时,使用父类定义,调用方法时,传递子类对象 3、返回值多态 返回值类型定义为父类,返回数据的时候返回子类对象 三、多态的优缺点: 缺点:丢失子类特有的属性,无法调用子类特有的属性,特

鹰与嘤的博客 248

拯救你的备份数据!STM32F407 RTC Tamper功能防篡改设计指南

本文详细介绍了STM32F407 RTC Tamper功能在物联网数据安全中的应用,包括硬件触发、数据清除和时间戳记录等核心机制。通过实战案例和代码示例,展示了如何构建多层次的防御体系,确保敏感数据在物理入侵时自动擦除并记录精确时间戳,适用于智能门锁、工业传感器等高安全需求场景。

weixin_28278377的博客 279

全网详细解决Client does not support authentication protocol requested by server;consider upgrading Mysql c

全网详细解决1251 - Client does not support authentication protocol requested by server; consider upgrading Mysql client。

念兮为美 5478

day13- 抽象 接口 重写常用的方法

Object 是java提供的根类(祖宗),所有类都直接或间接继承Object在java.lang包下, 这个包 是 核心包,用该包下所有的类,都不需要进行导入。

沸羊羊 584

FPGA实现CAN接口(SJA1000)

学无止境,善于积累,每天积累一点点,成功就在眼前,加油! 1 CAN总线简介 CAN(Controller Area Network,控制器局域网 )总线是一个多主机异步串行总线,也是国际上应用最广泛的现场总线之一。在现场总线中,它是惟一被ISO国际标准化组织批准的现场总线。由于其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。特别是由于CAN总线具有...

m0_46498597的博客 1万+

JAVA学习 DAY13 抽象类和接口【万字长文!一篇搞定!】

本文是一套系统的Java学习笔记,涵盖从基础语法到高级特性的核心知识点。重点讲解了抽象类和接口的概念、语法、特性及应用场景:抽象类作为模板提供统一规范,包含8个核心特性如不能实例化、必须被继承等;接口定义行为标准,具有10个特性如多继承能力、默认方法等。通过图形绘制、USB设备等实例演示了多态实现,并对比了两者的区别。文章提供完整代码示例,适合Java学习者系统掌握面向对象编程的关键技术。

HRDMN的博客 1213

OV9734 DATASHEET,完整规格书

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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

day13_oop_抽象类_接口

java面向对象,抽象类接口等

沐沐 1030

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Day08-【Java SE进阶】面向对象高级二——多态、final、抽象类、接口

对象多态:一个人可以是学生也可以是老师,学生和老师都是人的子类,创建人对象让其指向不同的对象,称为对象多态,这里是向下转型的特征。父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法,交给子类去重写实现,我们设计这样的抽象类,就是。在Java中有一个关键字叫:abstract,它就是抽象的意思,可以用它修饰类、成员方法。final关键字是最终的意思,可以修饰(类、方法、变量)情况下的一种现象,表现为对象多态和行为多态。定义一个抽象类,在里面定义2个方法。

没有人的博客 925

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java11-day02【多态(成员访问、多态转型、内存图解)、抽象类(成员特点)、接口(成员特点)、类和接口的关系、抽象类和接口的区别、综合案例】

多态(概述、成员访问特点、好处与弊端、多态中的转型、内存图解)、 抽象类(概述、特点、成员特点)、 接口(概述、特点、成员特点)、 类和接口的关系、 抽象类和接口的区别、 运动员和教练(案例分析、代码实现)

upward 1270

Java-Day13 面向对象三大特征之多态,抽象类抽象方法,接口,instanceof 关键字,final关键字,static关键字,内部类

Java学习的第13天:面向对象三大特征之多态,抽象类抽象方法,接口,instanceof 关键字,final关键字,static关键字,内部类,超详细!

weixin_51612062的博客 709

【Java学习|黑马笔记|Day10】面向对象进阶|多态、抽象、接口

【Java学习|黑马笔记|Day10】面向对象进阶|多态、抽象、接口 9)多态 同类型的对象表现出的不同形态 多态的表现形式:多态的前提:好处:使用父类作为参数可以接收所有子类对象体现多态的扩展性和便利 10)多态中调用成员的特点 变量调用:编译看左边,运行看右边 方法调用:编译看左边,运行看右边 优势:弊端:不能使用子类的特有功能 引用数据类型的类型转换: 12)包 包:即文件夹,用来管理各种不同功能的java类包名的规则:公司域名反写+包的作用,全部英文小写全类名:包名+类名使用其他类的规

2401_87144364的博客 1082

day13 抽象类和接口

抽象类和接口

Libra_97的博客 534

Day13 abstract Object 接口

1. 抽象 abstract 1.1 抽象是什么? 抽象类往往表示设计中得出的抽象概念。 比如动物只是一个抽象的概念,并不能表示一个实体。 abstract : 修饰符, 修饰的类是抽象类, 修饰的成员方法就是抽象方法 抽象方法:使用 abstract 修饰的成员方法,并且该方法没有方法体,就是没有大括号。 抽象类:不能被实例化,只能用于被继承。 抽象方法必须在抽象类中,一旦继承了这个抽象...

wzhty125的博客 280

Day13 接口

Day13 接口 生活中的接口 USB接口,插座口 Usb接口,需要满足接口的厚度和宽度 ​ 遵守磁片的个数 插座 插头满足插座的个数 ​ 电压、电流等。 4.2概念 接口是一种能力和约定 ​ 1、接口的定义:代表某种能力 ​ 2、方法的定义:能力的具体要求 接口可以多实现,用于扩充子类的能力。 1.1接口特点 与抽象类不同 1、接口不能创建...

Syntactic_tang的博客 220

JavaSE学习day09(面向对象-多态&抽象&类&接口)

###09.01_面向对象(多态的概述及其代码体现) A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提 a:要有继承关系。 b:要有方法重写。 c:要有父类引用指向子类对象。 C:案例演示 代码体现多态 ###09.02_面向对象(多态中的成员访问特点之成员变量) 成员变量 编译看左边(父类),运行看左边(父类)。 ###09...

weixin_42135811的博客 275

Surpass Day13——Java 接口在开发中的作用、关于Object类、内部类

接口在开发中的作用、关于Object类、内部类

胖虎虎 680

一个月学会Java 第13天 抽象类与接口

一个月学会Java 第13天 抽象类与接口

XingZaiUnrivaled的博客 742

Java知识点(十):static final、抽象类、接口、多态、内部类、面向对象三大特征

包含static final常量;什么是抽象类、抽象方法、继承抽象类、抽象类的意义;什么是接口、接口的实现、接口的继承、接口的意义、设计原则;什么是多态、向上造型、强制类型转换、instanceof;成员内部类、匿名内部类、内部类的应用;面向对象的三大特征:封装、继承、多态。

qq_45138120的博客 1398
上一篇: Day12 继承、final、super、覆写、多态
下一篇: Day14 Object、类关系
java_yangXL
博客等级 码龄5年 1粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值