1.方法的覆盖:
方法的覆盖是存在于继承中的概念,当子类去改写父类中定义的某个方法时(特别是当父类中的方法被标记为abstract时,子类必须覆盖此方法,此时也称为实现父类的某个方法)才称为覆盖(必须遵循一定的规则)。
方法覆盖的规则:
参数必须与父类中方法定义的一样(否则则考虑重载)
返回值必须是父类方法中返回值的子类,即可以转换成父类方法返回值的类型
不能降低方法的存取权限,但可以扩大权限(public、protected、friendly、private)
2.方法的重载:
方法的重载是指同一个名字的方法拥有不同的参数,不同的参数有两个含义:1.参数数量不同 2.参数类型不同,而其余的内容(访问权限、返回值)不作为方法是否重载的判断标准。如果两个方法不是重载却名字相同,则无法通过编译。
重载的方法允许返回值类型不同,但是不能只有返回值类型不同(参数相同则视为统一方法,错误!);还可以任意地改变存取权限。
构造函数的重载中,可以用this()来调用同级其他构造函数(this()为第一条语句【只能在构造函数中使用,区别于this】,括号中的参数决定所调用的构造函数),this()之后的语句也会被执行,就与普通方法的调用完全一样。