首页 > 其他分享 >1-21 继承丶合理化复制丶抽象

1-21 继承丶合理化复制丶抽象

时间:2024-03-20 14:30:05浏览次数:13  
标签:重写 21 继承 子类 合理化 复制 抽象 父类 方法

一为什么要学习继承?

类与类之间具备某些内在的联系,一般指具有相同含义的属性或者相同(类似)的功能

所谓的继承

将多个类之间存在的共同点(成员属性和成员方法)抽取出来,定义在指定的类中,这个类就称之为父类(或超类 基类); 存放特性的类 叫做子类,而父子类之间具备的关系---称之为继承

二 继承的好处:

1.简化子类代码的编写

2.提高了代码的重用性

拓展:继承的不足---提高了类与类之间的偶尔度,但是这种耦合度的提高提升复读是在封装的可控范围之内

三 继承的格式:

public[修饰符] class 类名 extends 父类{

}

建议:先写父类在写子类

四 方法重写:

1.含义:子类对父类已有方法进行功能性的增强需要在子类中重新定义该方法,称之为方法的重写

①构成方法重写的前提条件1:类与类之间必须是继承关系

②构成方法重写的前提条件2:重写的方法一定是父类已有的方法,丙炔一定是进行功能性的增强

2.构成方法重写的要素:

方法名(签名)一致 && 参数列表一致 && 返回值一致或者是 父类方法返回值的类型的子类 &&

访问权限不严于父类(子类的访问条件>=父类访问权限)

五 合理化赋值

1.重要性:对用户输入的数据进行合理化判断

2.在初级阶段用过条件运算符进行合理化复制

3.在实际开发中,一般常用的合理化复制判断主要是针对数值型(int和double)和String类型

①对于数值型:是否为0?是否能够小于0针对特殊值

②对于String类型:不能为" "(空串,空串是有地址,没有值),也不能为null(空值)

③拓展:当需要判断的类型是任意一种引用数据类型时,一般是不能为null

六 抽象

1.为什么使用抽象?(个人理解:强制子类必须重写父类的方法)

当父子类具有共性的方法,需要定义在父类中,但是父类又无法实现功能,需要由具体的子类实现,将父类中共性的方法去掉方法体,变成概念,称这样的方法为抽象方法(没有方法体节省栈的内存空间)抽象方法必须定义在抽象类中,否则报错

2.抽象类和抽象方法的定义格式

public abstract class 类名{

public abstract 返回值类型 方法名([参数列表]);

}

3.父类为抽象类之后,子类的操作

4.拓展:

①当子类 重写父类已实现的方法,重写

②子类定义父类抽象方法时,称之为实现(implements)

③实际开发中,如果没有特殊要求,不推荐使用抽象父类,这会回再次增加类与类之间的耦合度

标签:重写,21,继承,子类,合理化,复制,抽象,父类,方法
From: https://blog.csdn.net/Zjiayuan2002/article/details/136758778

相关文章

  • VMware vSphere Replication 9.0 - 虚拟机复制和数据保护
    VMwarevSphereReplication9.0-虚拟机复制和数据保护请访问原文链接:https://sysin.org/blog/vmware-vsphere-replication-9/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org新增功能vSphereReplication9.0提供以下新功能:VMwareLiveRecovery一种新的解决......
  • P2181 对角线
    原题链接题解有点思维,已知一个交点不会有三条对角线经过,所以有且只有两条对角线经过,而两条对角线又对应四个顶点,所以变成了组合数学,n个顶点里取四个。为了防止溢出,这里做了一些处理code#include<bits/stdc++.h>usingnamespacestd;intmain(){longlongn;cin>......
  • [HAOI2007][洛谷P2218]覆盖问题
    看到这道题,思考一下后发现要用二分答案。所以为什么要用二分?因为标签有二分还在二分专题里因为对于\(ans\)来说,如果\(ans\)不行,那么\(ans-1\)也一定不行;也就是说,答案满足单调性,所以可以二分;也是因为暴力明显过不了那么对于平面上的一些点来说,如果我们用一个最小的矩形......
  • Redis 主从复制的原理详解
    文章目录:1、复制过程2、数据间的同步3、全量复制4、部分复制5、心跳6、异步复制复制原理1.复制过程复制的过程步骤如下:1、从节点执行slaveof命令2、从节点只是保存了slaveof命令中主节点的信息,并没有立即发起复制3、从节点内部的定时任务发现有主节点的信息,开始使......
  • 常用命令--复制-备份--cp--mv--scp--rsync
    常用命令--复制-备份--cp--mv--scp--rsynccpcp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在......
  • 03-【K210】通用串口和高速串口
    目录null01串口通讯协议简介02K210的串口类型(1)高速UART(2)通用UART03通用UART测试例程04高速串口测试例程01串口通讯协议简介串口通讯(SerialCommunication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常......
  • 02-【K210】FPIO的API介绍和简单应用
    目录01概述02特性03接口04api接口验证01概述Fpioa(FieldProgrammableI/OArray)AllowsTheUserToMap256InternalFunctionsTo48FreeI/OsOnTheChip02特性•SupportForI/O’SProgrammableFunctionSelection•8DrivingCapabilityOptionsForI/OOutp......
  • [转][C#][WPF] 复制 DataGrid 单元格内容时不带回车
    来源:通义灵码提问:WPFDataGrid复制不带回车回答:在WPF的DataGrid控件中,默认情况下,复制的内容通常会包括单元格之间的换行符,这意味着当你将DataGrid中的数据复制到其他地方时,每行数据都会在新位置以回车分隔。如果你希望在复制过程中不包含这些换行符,而是将所有数据连续地粘贴在......
  • LeetCode 217 存在重复元素(JAVA)
    LeetCode217存在重复元素(JAVA)一、题目描述:给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。示例1:输入:nums=[1,2,3,1]输出:true示例2:输入:nums=[1,2,3,4]输出:false示例3:输入:nums=[1,1,1,3,3,4,......
  • redis自学(21)信号驱动IO和异步IO
    信号驱动IO信号驱动IO是与内核建立SIGIO的信号关联并设置回调,当内核有FD就绪时,会发出SIGIO信号通知用户,期间用户应用可以执行其它业务,无需阻塞等待  缺点:当有大量IO操作时,信号较多,SIGIO处理函数不能及时处理可能导致信号队列溢出而且内核空间与用户空间的频繁信号交互性......