• 多态和重写java


    多态

                 多态:同一个事物,作用条件不一样,结果不一样

    多态:同一个父类引用,指向不同的子类实例,执行不同的操作

       方法重写是实现多态的前提

      

    多态实现步骤:

       1)在抽象父类中定义抽象方法

       2)子类继承抽象父类并重写父类中所有的抽象方法

       3)测试类中创建父类引用指向不同的子类实例,父类引用调用方法,调用的是子类重写后的那些方法

                     向上转型(自动类型转换):父类的引用指向子类的实例

                     向下转型(强制类型转换):子类的引用指向父类的引用

                    

       父类的引用无法调用子类里独有的方法,必须使用向下转型成对应的子类,才能通过子类去调用子类中独有的方法

       在向下转型的时候,容易出现ClassCastException(类型转换异常),原因是将父类引用转换成了不匹配的子类对象

       可以通过instanceof关键字类判断父类引用指向的是哪一个子类实例,从而避免类型转换异常

    方法重写

               什么是方法重写

                 

    1. 方法的重写或方法的覆盖(overriding
      1. 子类根据需求对从父类继承的方法进行重新编写
      2. 重写时,可以用super.方法的方式来保留父类的方法
      3. 构造方法不能被重写

    方法重写规则

     方法名相同

    1. 参数列表相同
    2. 返回值类型相同或者是其子类
    3. 访问权限不能严于父类
    4. 父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法
    5. 子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(注:静态方法中无法使用super)
    6. 父类的私有方法不能被子类覆盖
    7. 不能抛出比父类方法更多的异常

    方法重写和方法重载的比较

             

                                                           

    Object

    1.                Object类是所有类的父类

    Object 类中的equals方法

      1.             比较两个对象是否是同一个对象,是则返回true
      2. 操作符==
        1. 简单数据类型,直接比较值。如1==2
        2. 引用类型,比较两者是否为同一对象

    1Object类的equals()方法与==没区别

    2)当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()

    3Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值

    instanceof用于判断一个引用类型所引用的对象是否是一个类的实例

    为什么要使用多态

              频繁修改代码 代码可拓展性 可维护性差

      使用多态优化

  • 相关阅读:
    单机点:Redis可以连接,但是无法写入数据
    PMP考试20天能通过吗?
    Windows下Redis的安装和配置
    【C语言】整理姓名表。将输入的若干姓名按字典顺序排序并输出。
    程序员如何用海外平台接单?
    java SSM流浪宠物救助与领养myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
    【lesson13】进程控制初识
    权限提升Web篇
    【贪心算法】452. 用最少数量的箭引爆气球
    SVN导入之后在本地没有创建svn控制文件,SVN如何提交文件
  • 原文地址:https://blog.csdn.net/qq_52153640/article/details/126192423