方法重载:
1.方法名相同
2.参数数据类型或者参数个数不同
3.与返回值、访问修饰符无关
方法重写:
1.方法名相同
2.参数列表相同
3.返回值类型相同或是其子类
4.访问权限不能严于父类
区别:重载是发生在同一个类中的表现,在编译的时候起作用;重写是发生在父类和子类之间的表现,在运行时起作用。
重载和重写方法名必须相同,而参数列表则相反,重载不可以相同而重写必须相同,重载在返回值类型,访问修饰符上没有太大的规则限制,而 重写则有很大的限制
(即规则中所明,返回值类型相同或是其子类且访问权限不能够严于父类,也就是说不能够低于其子类)
接口与抽象类的区别
1.可以被多继承
2.设计和实现完全分离
3.更自然地使用多态
4.更容易搭建程序框架
5.更容易更换实现
数据类型转换
1.向上转型 F f=new Son();
2.向下转型 Son s=(Son)f;