zoukankan      html  css  js  c++  java
  • JAVA核心技术I之继承

    知识点总结:
    (1)关键字extends表示继承。已存在的类:超类/基类/父类,新类:子类/派生类/孩子类。为了调用超类中的方法,使用super关键字。
    (2)关于super与this:super不是一个对象的引用,不能将super赋给另一个对象变量,他只是一个指示编译器调用超类方法的特有关键字。
    (3)使用super调用构造函数的语句必须是子类构造函数的第一条语句。
    (4)super的两个用途:一是调用超类的方法;二是调用超类的构造函数。
    this的两个用途:一是引用隐式参数;二是调用该类其他的构造函数。
    (5)一个对象变量可以引用多种实际类型的现象称为多态,在运行时能够自动的选择调用适当的方法的现象称为动态绑定。
    动态绑定有一个非常重要的特性:无需对现存的代码进行修改,就可以对程序进行扩展。
    (6) 如果方法是private,static,final或者构造函数,那么编译器将可以准确的知道该调用哪个方法,这种调用方式称为静态绑定。
    (7)在覆盖(override)一个方法的时候,子类方法不能低于超类方法的可见性(权限),特别是,如果超类方法是public,子类方法一定要是public。
    (8)如果将一个类声明为final,只有其中的方法自动变成final,而不包括域。
    (9)强制类型转换:1)只能在继承层次内进行类型转换;2)在将超类转换成子类之前,应该用instanceof进行检查。(一般情况下,尽量少用)
    (10)有关抽象类和protected关键字可以参见我的另一篇博文。
    (11)Object类中equals方法用于检测一个对象是否等于另一个对象。在Object类中,这个方法将判断两个对象是否具有相同的引用。具体关于equals方法参见另一篇博文。
    (12)hashCode返回每个对象的存储地址。如果重新定义equals方法,就必须重新定义hashCode方法。
    (13)强烈建议:为自己编写的每一个类增加toString方法!!!在自己设计的类中,要重写equals和toString方法。
    (14)利用下面的方法可以轻松扩展数组,也可以方便的访问数组元素:
    首先,创建一个数组,并添加所以元素。
    ArrayList list = new ArrayList();
    while(…) {
    x = …;
    list.add(x);
    }
    X[ ] a = new X [ list.size ()];
    list.toArray(a);
    (15) 关于反射,请参见我的另一篇博文。
    (16)在比较两个枚举类型的值时,永远不需要调用equals方法,而直接使用“= =”就可以了。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Nova官方资料入口处
    LeetCode 有效的数独
    LeetCode 两数之和
    LeetCode 移动零
    安装OpenStack Queens版本的教程推荐
    删除排序数组中的重复项
    (转载)OpenStack client 调用分析
    (转载)基于Linux C的socket抓包程序和Package分析
    Maven的具体使用和优点
    关于 Javascript 学习,有哪些好的博客或者网站推荐?
  • 原文地址:https://www.cnblogs.com/yangquanhui/p/4937450.html
Copyright © 2011-2022 走看看