[RE]JavaSE(2)

    技术2025-01-20  15

    [RE]JavaSE(2)

    重载与重写

    重载(Overload):
    同一个类中函数名相同参数列表必须不同返回值可以不同
    重写(Override):
    子类父类间函数外壳(返回值,形参列表,函数名)不可变重写时权限不可缩减,可放松或不变不能抛出更多的异常
    总结:

    从思想上来看,重载和重写都是多态性的具体表现。重载是类内多态而重写是继承中的多态。重载从结果上看能够提供同一任务的不同解决方案,我认为侧重于同一问题的不同思路;而重写是父子间相同任务同一解决方案的不同解决方式,侧重于相同思路不同实现。

    多态

    “多态是同一个行为具有多个不同表现形式或形态的能力。” “多态是一种接口,使用不同的实例执行不同方法。” 多态赋予了继承最大的意义。多态使得父子类之间具有极大的灵活性,同时极大地消除了耦合。设计模式中的工厂模式是多态很好的体现。

    多态的条件
    继承重写父类引用子类
    tips:虚函数

    虚函数实现动态绑定,而在java中这是一种默认行为。基类的引用在操作子类时动态匹配函数名相同的子类重写函数,这个函数叫虚函数,这个过程叫动态绑定。在Java中,如果不想实现动态绑定则需要在函数前声明final。

    多态的实现
    继承和重写接口抽象类

    抽象类

    不能实例化不一定包含抽象方法有抽象方法一定是抽象类
    抽象类和接口
    一个类只能单继承一个抽象类,但可以实现多个接口抽象类中非抽象方法可以不实现,接口必须全部实现继承耦合度高于实现

    接口

    接口允许继承且允许多继承接口中可以有静态方法标记接口唯一的作用就是表明某个类具有某些特质

    封装

    封装意味着将外部程序的访问控制权握在自己手中,减少事无巨细的随机访问,提高安全性,减少耦合度。

    封装的实现
    功能内容抽象减少抽象内容的权限仅提供必要且可控的访问接口

    枚举:

    特殊类型,使用enum关键字定义常量

    enun Color{ RED,BLUE,YELLOW; } void test(){ Color color = Color.BLUE; }
    Processed: 0.008, SQL: 9