方法的重写

来源:互联网 发布:java 网格布局 编辑:程序博客网 时间:2024/06/07 16:12

1.什么是方法的重写

                     子类中出现与父类一模一样的方法时,会出现覆盖操作,被称作复写或重写;      

2.方法重载和方法重写区别(面试题)

            方法重写Override:

                继承中子类中出现与父类方法声明完全相同的情况;

                (返回值、方法名、参数都一模一样)

            方法重载Overload:

                在同一类中,方法名相同,参数列表不同;

3.方法重写注意事项

            A.父类中的私有方法不可以被重写(覆盖);

            B.覆盖时,子类方法访问权限一定要大于等于父类的方法访问权限;

            C.静态方法只能被静态方法重写;

            D.覆盖应用:

                当子类需要父类的功能,而功能主体子类有自己特有内容时候可以复写父类中的方法,

                这样既沿袭了父类的功能,又定义了子类特有的内容;

            E.@Override //注解,测试当前方法是否重写

4.构造方法之间的关系

A. 子类中所有构造方法默认都会访问调用父类中无参构造方法,原因是子类中的   

构造方法中都有一行默认语句:super();

B. 因为子类会自动具备父类中的非私有数据,这些数据的初始化要靠父类完成,   

                所以会去先调用父类的构造方法对数据进行初始化;

C.  当父类中没有无参构造方法(注意事项):

                1.子类中可以使用super(参数);去访问调用父类中的带参方法;

                2.可以通过this(参数…)去反问本类中的构造方法(不推介使用);

一、继承过程中的代码块

        1.如果一个类中有静态代码块,构造代码块,构造方法;静态代码块只执行一次。

            执行顺序:静态代码块→构造代码块→构造方法

                                     父类的静态代码块→ 子类的静态代码块→父类的构造代码块→

                                     →父类的构造方法→子类的构造代码块→子类的构造方法

二、子类使用父类的私有

              如果成员变量被私有了,在子类中怎么使用?

              A.子类通过父类的set方法给父类成员变量赋值;

              B.用子类的有参构造调用父类的有参构造传值给父类私有属性;

 

三、Final关键字

              ※ final可以修饰类、成员变量、成员方法;

               Final修饰的方法是不可以被重写的;

               final修饰的类不能被继承;

               final修饰的变量,其实是一个常量;

 

0 0