继承与多态:
继承发生在父类与子类之间,分为严格继承和普通继承。
严格继承:子类可以新增方法,但不可以重写父类中的方法
继承:子类可以重写父类已经有的方法
重写过后在调用子类的过程中编译器会调用子类override的方法,而不是父类的原有方法
通过@override来告诉编译器,我在这里重写了,然后如果有问题,编译器会告诉我这个方法在override方面有什么问题。override本身不会对能够正确编译的程序产生任何影响。
override要求重写方法与原方法拥有相同的方法名以及参数。
多态:分为非参数化多态和参数化多态
@overload
非参数化多态为重载,通过在同一方法名下不同的参数,编译器会根据调用方使用的不同参数来选定不同的方法,比如同一个add方法,void add(String x)、void add(int x),由于参数不同,在调用的时候就能够采取不同的方法,而不是在同一个方法下通过instanceof来进行if判断。这样能够提升代码的可读性,让代码的扩展性也得到了提高。
参数化多态为泛型,通过public interface Set<T>的操作,在接口/类声明的时候进行。编译器在编译的时候,会根据调用不同的参数类型而生成不同的类,这些类之间没有继承关系