首页 > 编程语言 >java继承

java继承

时间:2024-01-17 19:23:36浏览次数:25  
标签:java 继承 子类 私有 父类 重写

java三大特征:封装、继承、多态
封装:对象代表什么就得封装什么样的数据,并提供数据对应的行为。

继承

java 中提供了一个extends关键字,用这个关键字可以让一个类和另外一个类建立起继承关系

public class Studebt extends Person(){
}

例如上段代码中,Student类就叫子类(派生类),Person就叫父类(超类或者基类)

使用继承的好处

  • 可以把多个子类中的重复代码抽取到父类当中,减少代码冗余,提高代码的复用性
  • 子类可以在父类的基础上,增加其他的功能,使子类更加强大。

继承需要学习:自己设计 、使用别人的

什么时候使用继承:当类与类之间存在相同(共性)的内容,并满足子类是父类中的一种,就可以考虑用继承来优化代码

java继承的特点:

  • 单继承:一个子类只能继承一个父类
  • 不支持多继承:子类不能同事继承多个父类
  • 多层继承:子类A继承父类B,父类B可以继承父类C(C是A的间接父类)
  • Object:所有类的直接父类或者间接父类

子类能继承父类中的哪些东西:

  • 构造方法: 构造方法不能被继承,非私有和私有都不能被继承(原因:父类的构造方法如果能继承,构造方法的名字,和子类的名字不一样)
  • 注意:如果父类中的方法属性的修饰符是private,那么子类将无法调用
  • 成员变量:不管是非私有还是私有,子类都可以继承,私有能继承但是不能使用(如果一定要用 可以使用get,set方法)
  • 成员方法:非私有可以被继承,私有不可以被继承,如果

继承如何调用成员变量:

  • 继承中访问成员变量采用就近原则。
    先在局部位置找,本类成员位置找,父类成员位置找,逐级往上找。
    如果局部、本类、父类中有相同的变量名:局部直接调用,本类用this. ,父类用super.

重写

  • 当父类的方法不能满足子类现在的需求的时候,需要进行方法的重写。
  • 重写需要@override注解去校验子类重写时的语法是否正确。

注意事项:

  • 重写的方法名,形参列表必须和父类中的一致
  • 子类重写父类的方法的时候,访问权限必须子类大于父类(protected<public)
  • 子类重写父类,返回值类型子类必须小于父类
  • 重写的方法尽量和父类保持一致
  • 私有方法不能被重写
  • 子类不能重写父类的静态方法,如果重写会报错。

标签:java,继承,子类,私有,父类,重写
From: https://www.cnblogs.com/wangkang3027447800/p/17970846

相关文章

  • 【从零开始重学Java】第13天 Java网络功能
    前情提示从零开始重学Java第0天从零开始重学Java第1天Java概述从零开始重学Java第2天标识符和数据类型从零开始重学Java第3天表达式和流程控制语句从零开始重学Java第4天数组、向量和字符串从零开始重学Java第5天对象和类从零开始重学Java第6天异常从零开始......
  • 多模块之间的循环依赖:java: Annotation processing is not supported for module cycl
    问题描述java:Annotationprocessingisnotsupportedformodulecycles.Pleaseensurethatallmodulesfromcycle[BDCloud-business,BDCloud-admin]areexcludedfromannotationprocessing  本质:BDCloud-admin模块为主启动模块,其包含了BDCloud-business模块;但在......
  • Java HttpClient 实战 GET 与 POST 请求一网打尽
    使用JavaHttpClient进行HTTP请求在Java中,HttpClient是进行HTTP通信的一个强大工具。它提供了简单而灵活的API,可以轻松地发送HTTP请求并处理响应。在本篇博文中,我们将深入探讨如何使用HttpClient执行GET、POST等不同类型的HTTP请求。1.引入依赖首先,确保在项目的pom.xml文件中......
  • java代码里如何判断某个IP/域名是否可达?
    在Java中,你可以使用java.net.InetAddress类来实现ping某个IP地址是否可达。下面是一个简单的示例代码:importjava.net.InetAddress;importjava.io.IOException;publicclassPingExample{publicstaticvoidmain(String[]args){StringipAddress="你的......
  • JavaGuide 设计模式
    JavaGuide设计模式1.软件设计原则设计原则名称简单定义开闭原则对扩展开放,对修改关闭单一职责原则一个类只负责一个功能领域中的相应职责里氏替换原则所有引用基类的地方必须能透明地使用其子类的对象依赖倒置原则依赖于抽象,不能依赖于具体实现接......
  • Java Collections.frequency()方法返回集合中指定元素个数
    JavaCollections.frequency()方法具有什么功能呢?下文笔者讲述Collections.frequency()方法的功能简介说明,如下所示:Collections.frequency()方法的功能:返回一个int值,其值给指定对象在集合中出现的次数Collections.frequency()方法的语法publicstaticintfreque......
  • Java 秘钥对相关操作
    生成JKS(JavaKeyStore)文件keytool-genkeypair-keystoremercury.jks-keyalgRSA-validity180-aliasmercury参数说明keytool:这是JavaKeytool工具,用于管理密钥和证书。-genkeypair:指示Keytool生成一个密钥对(公钥和私钥)。-aliasmercury:设置密钥对的别......
  • PDF转图片-itextpdf-java源码
    提供PDF文件转图片的工具类。电子签章过程中存在着在网页上对签署文件进行预览、指定签署位置、文件签署等操作,由于图片在浏览器上的兼容性和友好性优于PDF文件,所以一般在网页上进行电子签章时,会先将PDF文件转换成图片,展示给用户。用户在页面上确定好签署位置,并进行签署时,后端服......
  • 电子签章Java后端与前端交互签名位置计算
    电子签章过程中存在着在网页上对签署文件进行预览、指定签署位置、文件签署等操作,由于图片在浏览器上的兼容性和友好性优于PDF文件,所以一般在网页上进行电子签章时,会先将PDF文件转换成图片,展示给用户。用户在页面上确定好签署位置,并进行签署时,后端服务会通过对电子印章/手写签名位......
  • Gin 控制器的继承,自定义方法
    Gin控制器的继承,自定义方法1我们想直接获取到int类型的数据怎么办/* 当我们获取Get参数时都时获取到的都是string类型,有时候我们想直接获取到int类型,我们就需要转换,如果需要转换的地方多了也会很麻烦, 那我们可以怎么办 解决办法很简单,我们可以写一个baseController来实......