day1 继承、权限修饰符、重写、抽象

一、继承

dart 复制代码
1.1 概念:复用父类的属性和方法
    关键字 extends
1.2 注意事项:
    1. 如何继承:子类名 extends 父类名
    2. 子类除了用父类的,也可以有自己都有的
    3. Java的类是单继承 一个类只能直接继承另一个类
            Java支持多重继承
            A extends B
            B extends C
            A间接继承了C。所以可以使用C的资源
    4.父类的私有资源 子类可以继承但是不能直接调用。可以通过get/set方法间接调用
    5.查看类的继承关系
            5.1 从上到下的 选中类 ctrl + h
            5.2 选中要查看的类名,右键 Diagrams -> show Diagram

二、权限修饰符

arduino 复制代码
   private: 本类
   缺省: 同包/本包
   protected: 本包、非本包下子类中\内
   public:本模块

三、方法的重写

markdown 复制代码
   为什么要重写?父类的方法不满足子类的需求
   重写的规则:
       1. 子类的访问权限修饰符 >=父类
       2. 如果父类的方法返回值类型是void 或 8个基本,子类重写必须一致
          如果父类的方法返回值类型是引用类型,则子类可以一致或<=父类的返回值类型
       3. 方法名一致
       4. 参数列表必须一致
    快速重写:ctrl + o
    
    toString方法:
        来自于Object类
        默认实现是输出对象的全类名@哈希码的十六进制
        根据自身需求,重写,快速展示对象的属性值
    

四、继承关系下的构造器

scss 复制代码
   每一个类的构造器的首行默认隐式存在super()调用父类的无参构造。
   super(实参列表) 调用父类的有参构造

this和super

kotlin 复制代码
   this:本类的对象。
       区分实例变量和局部变量
       调用本类的其他构造器
       调用本类的实例方法、实例变量
   super:父类的引用,可以访问父类的资源
       调用父类的构造器
       调用父类的实例方法
       调用父类的实例变量
   在一个方法中,访问一个变量:就近原则
       局部->本类->父类

抽象

csharp 复制代码
抽象概念:像缺不是,具备某些特征,但不完整。
关键字 abstract
修饰类、修饰方法
修饰类:
    类不能创建对象。
    不一定有抽象方法。
    有构造器、实例方法、实例变量。要服务于子类
修饰方法:
    抽象方法所在的类一定是抽象类
    抽象方法只有声明,没有实现。
    要求子类必须重写,子类不重写,那就变成抽象类。
相关推荐
爱学习的小可爱卢12 小时前
JavaEE进阶——SpringBoot拦截器详解:从入门到实战
java·spring boot·后端
汤姆yu13 小时前
基于springboot的运动服服饰销售购买商城系统
java·spring boot·后端
期待のcode13 小时前
Springboot数据层开发—Springboot整合JdbcTemplate和Mybatis
spring boot·后端·mybatis
Jul1en_13 小时前
【Spring】实现验证码功能
java·后端·spring
IT_陈寒13 小时前
Java并发编程避坑指南:从volatile到ThreadLocal,8个实战案例解析线程安全核心原理
前端·人工智能·后端
Victor35613 小时前
Netty(10)Netty的粘包和拆包问题是什么?如何解决它们?
后端
全栈独立开发者13 小时前
软考架构师实战:Spring Boot 3.5 + DeepSeek 开发 AI 应用,上线 24 小时数据复盘(2C1G 服务器抗压实录)
java·spring boot·后端
Victor35613 小时前
Netty(9)如何实现基于Netty的UDP客户端和服务器?
后端
在坚持一下我可没意见13 小时前
Spring 开发小白学习过程中常用通用配置文件,即拿即用!(持续更新中)
java·数据库·后端·学习·spring·tomcat·mybatis
一 乐13 小时前
心理健康管理|基于springboot + vue心理健康管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端