HeadFirst

  1. ArrayList更像是一个动态数组,不是链表。而且ArrayList可以向普通数组转换。
  2. 使用final修饰符意味着这是继承树的末端,不能被继承。
  3. 在多态下,引用与对象可以是不同的类型。
    Animal myDog = new Dog();
    
    Animal为父类,Dog为子类。
  4. 有些类不可以被初始化,比如并没有一个对象叫“动物”,但是可以有一个对象是狗。所以就加上abstract关键词,抽象类。
  5. 同上观点,抽象方法在父类中没有具体实现,但是子类必须实现。
  6. 接口可以解决多个父类的问题,借口就像是100%纯的抽象类。使用接口可以继承一个以上的来源。
  7. 类也可以实现多个接口。
  8. 不管对象在哪里声明的,它总是运行在堆上。所有局部变量在栈中,实例变量在所属的对象中,在堆上。
  9. 写构造函数的时候记得设定属性的默认值,有参数和无参数构造函数的重载,参数检测。
  10. 如果写了有参数的构造函数,那么记得再写一个无参数的。编译器只在没有构造函数的时候才会调用默认构造函数。
  11. 重载构造函数指:有一个以上的构造函数且参数都不相同。
  12. 有默认值的无参构造函数是不合理的,比如Color(),创建对象必须带参。
  13. 调用父类的构造函数,唯一方法是调用super()。
原文地址:https://www.cnblogs.com/JackKing-defier/p/9806977.html