一,重载
1.概念:对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候局构成方法重载
2.示例:
- public class Test{
- public void a( ){
- };
- public void a( int i){
- };
- }
- public class Test{
- public void a(int i){
- };
- public void a(String j){
- };
- }
- public class Test{
- public void a(int i,String j){
- }
- public class a(String j,int i){
- }
- }
3.作用:
方法重载就是对不同数据类型的的数据实现相似的操作。
二,重写
1.概念:
当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。
重写也是覆盖 override
2.前提:
必须要有继承关系
3.特点:
(1):当子类重写了父类的函数,那么子类的对象如果调用该函数,一定调用的是重写过后的函数。
可以通过super关键字进行父类的重写函数的调用。
(2): 继承可以使得子类增强父类的方法
4.细节:
(1): 函数名必须相同
(2):参数列表必须相同
(3): 子类重写父类的函数的时候,函数的访问权限必须大于等于父类的函数的访
问权限否则编译报错
(4):子类重写父类的函数的时候,返回值类型必须是父类函数的返回值类型或该返回值类型的子类。不能返回比父类更大的数据类型
5.示例:
- class Animal{
- int x=1;
- String name;
- void eat(){
- System.out.println("吃东西");
- }
- void shout(){
- System.out.println("我是动物");
- }
- }
- class Dog extends Animal{
- void eat(){
- System.out.println("啃骨头");
- }
- void shout(){
- System.out.println("旺旺");
- }
- void eat(String food){
- System.out.println("吃:"+food);
- }
- }
- class Cat extends Animal{
- void eat(){
- System.out.println("吃老鼠");
- }
- void shout(){
- System.out.println("喵喵");
- }
- }
- class Demo9{
- public static void main(String[] args){
- Dog d=new Dog();
- d.shout();
- d.eat();
- Cat c=new Cat();
- c.shout();
- c.eat();
- System.out.println();
- }
动物类有名字,有吃和叫的方法
狗继承动物重写父类吃和叫的方法
猫继承动物重写父类吃和叫的方法
三,重载和重写的不同
1:重载(overload):
1:前提: 所有的重载函数必须在同一个类中
2:特点:
函数名相同,参数列表不同,与其他的无关(访问控制符、返回值类型)
3:不同:
个数不同 、 顺序不同、 类型不同
2:重写(override):
1:前提: 继承
2:特点:
函数名必须相同、参数列表必须相同。
子类的返回值类型要等于或者小于父类的返回值