方法的重载和覆盖

重载(overload):在一个类中重载多个方法,方法名相同,参数形式、数量不同

重载的规则:
   1、重载时只能通过相同的方法名、不同的参数形式实现,可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);
   2、不能通过访问权限、返回类型、抛出的异常进行重载;
   3、方法的异常类型和数目不会对重载造成影响;

覆盖(override):重写一个方法,用以实现不同的功能,一般是子类重写父类的方法

重写(覆盖)的规则:
   1、参数列表必须完全相同,否则不能称其为重写而是重载.
   2、访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
   3、返回值必须和被重写的方法的返回一致;
   4、抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
   5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
   6、静态方法不能被重写为非静态的方法(会编译出错)。

 

继承(extends):继承父类的全部功能,只能有一个继承

实现(implements):实现接口中所定义的方法,可实现多个接口

 

默认构造器:Java类中有默认的无参构造器,格式为<class_name>(){},作用是根据类型为对象提供默认值,0或null...

有参构造器:为不同的对象提供不同的初始化参数,构造方法也可以进行重载

构造函数与方法之间的区别

Java构造函数Java方法
构造器用于初始化对象的状态(数据)。 方法用于暴露对象的行为。
构造函数不能有返回类型。 方法一般都有返回类型。
构造函数隐式调用。 方法要显式调用。
如果没有指定任何构造函数,java编译器提供一个默认构造函数。 在任何情况下编译器都不会提供默认的方法调用。
构造函数名称必须与类名称相同。 方法名称可以或可以不与类名称相同(随意)。

 

成员变量:定义在类中,类中都可以访问;存储在堆内存的对象中;有默认初始值

局部变量:作用于局部,局部访问;存储在栈中,随作用域结束而清除;没有初始值

变量使用时遵循 就近原则

静态变量(方法):随着类的加载存在,类消失而消失;可通过类名调用;存储在方法区的静态区;对象之间共享

对象的作用域通过{}来分割

posted on 2019-03-04 17:49  MC伍  阅读(100)  评论(0编辑  收藏  举报