Overload 和 Override

来源:互联网 发布:教育软件代理 编辑:程序博客网 时间:2024/04/26 09:15

Overload:是方法的重载,指方法名相同而参数不同的多个方法,程序运行时会根据你传的参数,自动调用相对应的方法。

当参数类型不同时,返回值类型可以不同,这仍是重载(代码如下)。但当参数类型相同,参数个数也相同,而返回值类型不同时,不是重载。

class Student{public int max(int a,int b){return a>b?a:b;}public double max(double a,double b){return a>b?a:b;}public double max(double a,double b,double c){double max=a>b?a:b;return max>c?max:c;}}


Override:是方法的重写,也叫覆盖,常见于继承结构或接口类的实现中。

当子类继承父类时,子类可以覆盖父类的非私有的方法(而且必须要保证子类权限大于等于父类,才可以覆盖,否则编译出错),覆盖之后,用父类引用去接子类对象的时候,调用的是子类的方法。当类实现一个接口的时候,需要覆盖里面所有的抽象方法。

静态的函数只能覆盖静态的。

覆盖的方法不能抛出比父类被覆盖的方法更多的异常。

构造方法是类初始化时的一个构造器,是属于该类自己的东西,不能被继承,所以不可以被覆盖,但可以被重载。

1 0
原创粉丝点击