javase知识点 ----7 (类与类之间的关系 ------继承--------)

2023-10-04 02:50

本文主要是介绍javase知识点 ----7 (类与类之间的关系 ------继承--------),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关联关系:一个类做为另一个类的属性类型存在。has-a
依赖关系:一个类作为另一个类的参数类型存在。use-a

--------------------------------继承-------------------------------------------------

1、定义:子类能吸收已有类的数据属性和行为,并能扩展新的能力。
2、声明形式:【访问权限修饰符】【修饰符】子类名  extends  父类名{子类体}
   注意:1、子类只能继承父类所有非私有的成员(成员方法和成员变量)
         2、Java只支持单继承,不支持多继承。Java支持多层继承(继承体系)
         3、不要为了部分功能而去继承

3、继承中的成员变量:
      在子类方法中访问一个变量
      1、首先在子类局部范围找
      2、然后在子类成员范围找
      3、最后在父类成员范围找(肯定不能访问到父类局部范围)
      4、如果还是没有就报错。(不考虑父亲的父亲…)

4、super和this区别
   1、this代表本类对应的引用。
   2、super代表父类存储空间的标识(可以理解为父类引用)
   用法(this和super均可如下使用)
   (1)访问成员变量
        this.成员变量    super.成员变量
   (2)访问构造方法
        this(…)        super(…)
   (3)访问成员方法
        this.成员方法()    super.成员方法()
    注:1、this关键字必须放在非静态方法里面
        

5、继承中构造方法的关系
   1、子类中所有的构造方法默认都会访问父类中无参数的构造方法。为什么?子类初始化之前,一定要先完成父类数据的初始化。每一个构造方法的第一条语句默认都是:super()
   2、子类可以通过super去调用父类所有的构造方法。eg:super();
   3、子类通过this去调用本类的其他构造方法  eg:this();   本类其他构造也必须首先访问了父类构造
   4、super(…)或者this(….)必须出现在第一条语句上,所以在同一个构造方法中只能出现一个


6、继承中的成员方法
     通过子类对象去访问一个方法
     1、首先在子类中找
     2、然后在父类中找
     3、如果还是没有就报错。(不考虑父亲的父亲…)

7、方法覆盖:
   1、原则:在继承关系中,同名、同参、同返回值、访问权限不能缩小。
   2、什么时候用?如果子类需要修改从父类继承到的方法的方法体,就可以使用方法覆盖(重写)。

8、final修饰符
   1、final修饰属性、局部变量,值不能被修改
   2、final修饰类,不能被继承
   3、final修饰方法,不能被子类覆盖
   注意:String类可以继承吗 ? 不可以,因为String类是被final修饰的

这篇关于javase知识点 ----7 (类与类之间的关系 ------继承--------)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146

相关文章

Java中的getBytes()方法使用详解

《Java中的getBytes()方法使用详解》:本文主要介绍Java中getBytes()方法使用的相关资料,getBytes()方法有多个重载形式,可以根据需要指定字符集来进行转换,文中通过代... 目录前言一、常见重载形式二、示例代码三、getBytes(Charset charset)和getByt

Java使用Stream流的Lambda语法进行List转Map的操作方式

《Java使用Stream流的Lambda语法进行List转Map的操作方式》:本文主要介绍Java使用Stream流的Lambda语法进行List转Map的操作方式,具有很好的参考价值,希望对大... 目录背景Stream流的Lambda语法应用实例1、定义要操作的UserDto2、ListChina编程转成M

Python多重继承慎用的地方

《Python多重继承慎用的地方》多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录前言多重继承要慎用Mixin模式最后前言在python中,多重继承是一种强大的功能,它允许一个

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

使用Java编写一个字符脱敏工具类

《使用Java编写一个字符脱敏工具类》这篇文章主要为大家详细介绍了如何使用Java编写一个字符脱敏工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、字符脱敏工具类2、测试工具类3、测试结果1、字符脱敏工具类import lombok.extern.slf4j.Slf4j

Java实现按字节长度截取字符串

《Java实现按字节长度截取字符串》在Java中,由于字符串可能包含多字节字符,直接按字节长度截取可能会导致乱码或截取不准确的问题,下面我们就来看看几种按字节长度截取字符串的方法吧... 目录方法一:使用String的getBytes方法方法二:指定字符编码处理方法三:更精确的字符编码处理使用示例注意事项方

Spring三级缓存解决循环依赖的解析过程

《Spring三级缓存解决循环依赖的解析过程》:本文主要介绍Spring三级缓存解决循环依赖的解析过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、循环依赖场景二、三级缓存定义三、解决流程(以ServiceA和ServiceB为例)四、关键机制详解五、设计约

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.