8.JavaSE 继承(详细知识)

继承是面向对象编程的重要特性,允许子类继承父类的属性和方法,提高代码复用性。子类可以有自己的特有内容,但这也增加了类之间的耦合性,当父类变化时可能影响子类。继承遵循isa关系,如子类是什么的关系。Java中每个子类构造方法会先调用父类的构造方法进行初始化,且子类能重写父类方法,但不能重写私有方法。
摘要由CSDN通过智能技术生成

*继承:
    概述:
        继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,
        还可以在子类中重新定义,追加属性和方法。
    
    格式:
        public class 子类名 extends 父类名{}

        父类也被称为基类或者超类,子类也被称为派生类。

    特点:
        ①子类可以有父类的内容
        ②子类还可以有自己特有的内容
    
    好处:
        提高代码复用性和维护性

    弊端:
        继承让类与类之间产生了关系,类的耦合性增强了。
        当父类发生变化时子类实现也不得不跟着变化,削弱了子类的
        独立性

    什么时候用继承:
        继承体现关系是: is a  ,即什么是什么的关系,一般都是数学的包含关系

    继承中变量的访问特点:
        ①使用成员变量在成员方法输出优先级:
            方法体内的局部变量 > 方法体本类的成员变量 > 方法体本类继承的父类的成员变量
    
    super(关键字):
        ①    代表父类存储空间的表示(可以理解为对象引用,对象引用可以理解为就是对象名)

        访问构造方法:
            关键字(...)
    
        访问成员方法:
            关键字.成员方法(...)

    继承中构造方法的访问特点:
        ①优先级:
            当测试类创建子类对象时,会先输出父类的无参构造方法的内容再输出子类(无参或者有参)构造方法的内容

            *子类中所有的构造方法默认都会访问父类中的无参的构造方法

            原因:
                ①因为子类会继承父类中的数据,可能还会使用父类的数据。
                  所以,*子类初始化(完成)之前,一定要先完成父类数据的初始化
                先有父亲后有儿子            

                ②每一个子类构造方法的第一条(隐藏)语句默认都是:super()

        ③父类必须有无参构造方法,否则需要在子类的构造方法中的默认super()语句
            括号内加入参数,形成父类对象引用带参构造


    继承中成员方法的访问特点:
        ①优先级:
            成员方法的使用,先看子类有没有,子类没有再去父类找
            子类成员方法 > 父类成员方法

            可以在方法第一句写super.方法名();;来反过来

    *初始化补充:
        可以理解为先执行构造方法,然后赋值给对象

        Java隐藏了指针这个说法 但是如果你使用了一个没有赋值 就是没有初始化的对象 他就会报错空指针

        初始化的时候会先给一个临时默认值防止空指针异常,然后再看成员变量有没有赋值,如果有则变为成员变量的值
        如果没有则临时默认值就会成为最终初始化中的赋值

    方法重写:
        概述:
            子类中出现了和父类中一模一样的方法声明(可以重写内容)
    
        注意:
            ①注解 @Override  可以检验重写的方法的声明是否一致
            
            ②父类私有private方法子类不可能重写,否则就是重新定义一个子类的私有方法

            ③表面父类私有private成员子类是可以继承的,但不能直接使用,然后父类私有的成分不能被继承包括构造和成员方法
              *但实际上子类没有继承父类的私有变量,而是继承了get/set方法 ,再然后改变和获取私有变量的值
            ④父类方法如果是没有修饰符即默认修饰符,子类重写默认修饰符方法也可,public也可
                访问权限大小:public > 默认 > 私有private
                即子类重写的方法的访问权限不能比父类方法的访问权限低


    Java中继承的注意事项:
        ①不能同时继承多个类,只能继承一个类
        
        ②可以多层继承  Son extends Father{},Father extends Granddad{}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小艺术生◎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值