1、构造器:如果子类的构造器没有显示地调用父类的构造器,则将自动的调用父类默认构造器,如果父类没有默认构造器(不带参)子类中也没有显示的调用父类其他构造器,编译器就会报错。
2、方法:子类中调用父类的方法时需要在方法名前加super。
重写(override)时,如果在内部调用父类的方法,不加super会死循环(StackOverflowError)
3、多态:一个对象变量,可以引用多种实际类型的现象称为多态。
4、动态绑定:在运行时能够自动地选择调用哪个方法的现象称为动态绑定。
(private,static,final方法,编译器能够准确知道调用哪个方法,称为静态绑定)
5、final修饰符:被final修饰符定义的类不能被继承,所有方法默认为final,但是属性不是;
6、抽象类:抽象类不能被实例化,但是可以引用非抽象的子类对象。
7、protect修饰符:仅对子类和本包可见;示例:object的clone方法;
8、toString()方法,定义这个方法的原因是:只要对象与字符串通过+连接起来,编译器就会自动调用此方法。
o.stoString()可以用“”+o代替.System.out.print(o);会直接调用toString方法;Arrays.toString();
9、泛型数组列表:ArrayList <A> list = new ArrayList<A>; trimToSize()
10、接口:接口替代多继承原因在于,多继承太复杂且降低效率
接口所有方法默认public,但是实现接口的类必须将方法注明public,否则编译器会认为你搞“降权攻击”
接口不能被实例化,但是可以声明变量引用实现了接口的类对象。
接口中不能包含实例域或静态方法,但可以包含常量,默认public static final
例子:Comparable