zoukankan      html  css  js  c++  java
  • 面向对象——继承

     什么是继承?

      Java中的继承类似于生活中的继承,在Java中,用extends关键字表示继承关系,表示is—a关系。比如狗是动物,就可以说狗继承了动物。

    子类可以继承父类中非私有的属性和方法,但不能继承父类的构造方法。

    方法的重写:

      方法的重写是指子类继承了父类的非私有方法,通过更改方法中的代码来完成需要的程序。

    重写方法的特点:

      1、方法签名必须相同

      2、子类的修饰符范围要大于或者等于父类修饰符范围(public>protected>默认>private)

      3、子类的返回值类型和异常类型要小于等于父类的返回值类型和异常类型,即可以发生自动转换

    方法的重写(override)和方法的重载(overload)的区别:

      1、方法的重写发生在父子类和接口实现类中,方法的重载只有在同一个类中

      2、方法的重写方法签名相同,方法的重载参数列表不同

      3、方法的重写与返回值和修饰符有关,方法的重载和返回值类型和修饰符无关

    super关键字:代表当前对象的直接父类

      1、可以调用父类的非私有属性

      2、可以调用父类非私有的方法

      3、可以调用父类的构造方法,但super()必须放在第一行

      注意:super和this一样不能再静态方法中使用!

    Object类:

      Object类是所有类的直接父类或者间接父类,可以继承Object类中的方法

    父类和子类中代码的执行顺序:

      1、父类中的静态代码块

      2、子类中的静态代码块

      3、父类中的普通代码块

      4、父类的构造方法

      5、子类中的普通代码块

      6、子类的构造方法

    ==和equals的区别:

      1、==比较基本数据类型比较的是值

      2、==比较引用数据类型比较的是引用地址

      3、equals比较的是内容

      4、在Object类中equals比较的是地址,和==相同,如果需要按内容进行比较需要重写equals方法

  • 相关阅读:
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/hudada007/p/6971494.html
Copyright © 2011-2022 走看看