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