1.继承
[1]子类继承父类的所有方法,从而可以访问父类的私有成员变量;
每个子类构造函数的第一句话,都默认依次调用父类的无参构造函数super(),
即子类必须在构造函数的第一行显式/隐式的调用super()一次;
[2]在同样方法名和参数的情况下,本类的方法会比父类的方法的优先级高,即优先调用子类内部自己定义的方法;
[3]如果不自己写extends,Java类都默认继承java.lang.Object类,所以可以说Java中所有类都是从java.lang.Object类开始构建出的单根继承树;
Object里默认就有clone(), equals(), finalize(), getClass(), hashCode(), toString()等;
2.抽象类和接口
[1]方法声明后面存在{},即完整方法体的才叫实现了这个方法;({}内可以没有任何东西)
[2]方法全部实现的类才是一个完整的类,一个完整的类才能被实例化即new出对象;
[3]abstract 和 interface对比
1)抽象类可以有部分方法实现,接口所有方法不能有实现;
2)抽象类有构造函数,且包括构造函数在内的所有方法可以有public/private/protected;接口没有构造函数,且包括构造函数在内的所有方法都是public;
3)抽象类可以有main,也能运行,接口没有main函数;
4)接口可以继承多个接口,没有实现的方法将会叠加;接口里面的函数都不能实现,否则就是一个抽象类,可以定义final常量型的变量;
5)类只可以继承(extends)一个类,但可以实现(implements)多个接口,且继承和实现可以同时发生;此时,extends必须放在implements前;
注:匿名类,可以实现临时new一个接口/抽象类的实例出来,意义和用处尚未明确,等之后碰到了回来补充⑧!