查漏补缺,面向对象

java查缺补漏(打卡3)

  1. 面向对象(本质 :以类的形式组织代码,以对象的形式封装数据

    组织代码:我的理解是类中的方法与属性(类中也只有方法与属性这2个)

    封装数据:

    1. 对象是抽象概念(我认为抽象概念[共有的属性模版]可以理解为类)的具体实例(即new)

      • 例如:张三是人的的具体化实例
    2. 特性

      • 封装:属性私有,get/set。即只要操作接口实现可以不了解

      • 继承(extends):对一批类的抽象。例如哺乳动物和非哺乳动物2个类都在动物这个大类中

        1. 子类的无参构造器会默认调用父类的无参构造器,如果父类中写了有参但没写无参会报错。image-20260313172909970(注释无参)image-20260313173150722可以通过写super调用父类的有参构造器来解决image-20260313173255649

        2. super用于访问直接父类的成员(变量或方法)

      • 多肽:即同一个方法可以根据对象的不同而采取多种不同的行为方式。通俗来说父类方法和子类方法是相同名字但方法体不同,此时就应该看事什么实际类型与引用类型

        一个对象的实际类型是确定的,可指向的引用类型是不确定的:由父类到子类

        我是这样理解:人与学生类中有相同的方法,即子类重写的父类,而此时人被赋予了一个实例学生,而学生方法中恰好有此方法

        1. 多态是方法的多肽,属性没有多态
        2. 父类与子类有联系
        3. 存在条件:继承关系,方法重写,父类引用指向子类
        4. static方法是属于类的不属于实例
        5. final 常量,最终的不能改变
        6. private方法:私有的
  2. 构造方法(注意点:和类名相同,无返回值

    1. 无参构造器(为了保证程序安全)
      • 实例化初始值(不定义为默认值)image-20260313154115617
    2. 有参构造 image-20260313154814519
  3. 重写:主要重写里面的方法体

    1. 需要有继承关系,子类重写父类方法
    2. 方法名与参数列表必须相同
    3. 范围能扩大不能缩小:public>Protected>Default>Private
    4. 抛出的异常:范围,可以被缩小,不能扩大

    image-20260313194527907image-20260313194551867

    image-20260313194128904

    image-20260313194500411

    • 没有static时,b调用的是对象的方法,而b是用A类new
    • 有static时,b调用了B类的方法,因为b是用B类定义的
    • 因为静态方法是类的方法,而非静态是对象的方法
    • 即b是A new出来的对象,因此调用了A的方法
    • 根据Java的语言规范,静态方法不能被重写。当子类中出现与父类签名相同的静态方法时,这种情况被称为方法的隐藏,而不是重写。这意味着,如果子类中定义了一个与父类中静态方法签名相同的静态方法,那么父类中的方法将被隐藏,而不是被子类重写。
posted @ 2026-03-14 10:59  三咲肘击王  阅读(1)  评论(0)    收藏  举报