直接给出答案:

 首先,构造器是不能被继承的,因为每个类的类名都不相同,而构造器名称与类名相同,所以根本谈不上继承。 

又由于构造器不能继承,所以就不能被重写。但是,在同一个类中,构造器是可以被重载的。


这里再次给出重写和重载(Java)的含义和一些例子加深印象:


一,重载

1.概念:对于同一个类,如果这个类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候局构成方法重载

2.示例:

1. public class Test{  
2. public void a( ){  
3.   };  
4. public void a( int i){  
5.    };  
6. }


说明:在Test类中有两个方法,名字都相同,都是a。在调用方法a时,如果不传参数,则系统会自动调用第一个方法a,如果传入一个 int 类型的参数,则系统调用第二个方法a。



1. public class Test{  
2. public void a(int i){  
3.   };  
4. public void a(String j){  
5.   };  
6. }


说明:在Test类中有两个同名的方法a。在调用方法时,如果传入一个int类型的参数,则会自动调用第一个a方法,如果传入一个String类型的参数,则会自动调用第二个方法a。



    1. public class Test{  
    2. public void a(int i,String j){  
    3.   }  
    4. public class a(String j,int i){  
    5.   }  
    6. }


    说明:在Test类中有两个同名的方法。在调用方法时,如果传入的第一个参数类型为int,第二个参数类型为String,则自动调用第一个方法a。如果传入的第一个参数为String类型,第二个参数类型为int,则自动调用第二个方法a。

    3.作用:

    方法重载就是对不同数据类型的的数据实现相似的操作。

    二,重写

    1.概念:

    当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。

    重写也是覆盖 override

    2.前提:


    必须要有继承关系


    3.特点:


    (1):当子类重写了父类的函数,那么子类的对象如果调用该函数,一定调用的是重写过后的函数。

    super关键字进行父类的重写函数的调用。

    (2): 继承可以使得子类增强父类的方法


    4.细节:


    (1): 函数名必须相同

    (2):参数列表必须相同

    (3): 子类重写父类的函数的时候,函数的访问权限必须大于等于父类的函数的访

    问权限否则编译报错

    (4):子类重写父类的函数的时候,返回值类型必须是父类函数的返回值类型或该返回值类型的子类。不能返回比父类更大的数据类型

    5.示例:



    1. class Animal{  
    2. int x=1;  
    3.     String name;  
    4.       
    5. void eat(){  
    6. "吃东西");  
    7.     }  
    8. void shout(){  
    9. "我是动物");  
    10.     }  
    11. }  
    12.   
    13. class Dog extends Animal{  
    14.       
    15.       
    16. void eat(){  
    17. "啃骨头");  
    18.     }  
    19. void shout(){  
    20. "旺旺");  
    21.     }  
    22. void eat(String food){  
    23. "吃:"+food);  
    24.     }  
    25. }  
    26. class Cat extends Animal{  
    27.   
    28. void eat(){  
    29. "吃老鼠");  
    30.     }  
    31. void shout(){  
    32. "喵喵");  
    33.     }  
    34. }  
    35.   
    36. class Demo9{  
    37.   
    38. public static void main(String[] args){  
    39. new Dog();  
    40.         d.shout();  
    41.         d.eat();  
    42.           
    43. new Cat();  
    44.         c.shout();  
    45.         c.eat();  
    46.         System.out.println();  
    47.         }

    说明:


    动物类有名字,有吃和叫的方法



    狗继承动物重写父类吃和叫的方法

    猫继承动物重写父类吃和叫的方法

    三,重载和重写的不同


    1:重载(overload):  

    :前提: 所有的重载函数必须在同一个类中

    :特点:

    (访问控制符、返回值类型)

    :不同:

    个数不同 、 顺序不同、 类型不同

    2:重写(override):

    :前提: 继承

    :特点:

           函数名必须相同、参数列表必须相同。

           子类的返回值类型要等于或者小于父类的返回值类型