private、static、final、abstract关键字之间的关联

一、abstract可不可以 与 final private static共存?

        1.abstract 和 static 不能一起使用

               因为static修饰的成员方法多了一种调用方式 类型.成员名   。静态(static)与类有关和对象无关,调用抽象方法并不存在实际意义,所以两者不能一起使用。

        2.abstract 和 final 不能一起使用

               被final修饰的成员方法无法再在子类中被重写,而abstract修饰的成员方法要求在子类中必须重写,两者自相矛盾,所以不行。

        3.abstract 和 private 不能一起使用

                被private修饰的成员无法被子类继承,何来重写一说?

二、static final abstract的区别

          1.static

                 属性:  共有的    通过类名直接调用

                 方法:  共有的     通过类名直接调用

                 特点:static修饰的静态成员方法中不能含有this和super关键字

                             只能直接调用静态成员,而不能直接非静态(可以通过创建静态调用非静态成员)

           2.final

                属性:被final修饰的成员属性或者局部变量,会最终变为常量

                方法:被final修饰方法将不能在子类中被重写

                    类:被final修饰的类将无法被继承

          3.abstract

                方法:被abstract修饰的方法称为抽象方法,抽象方法只能放在抽象类中,想要使用,必须在子类中进行重写(构造方法将不能被abstract修饰)static方法,不能被abstract修饰

                    类:抽象类不能被实例化,但是抽象类中含有构造方法,抽象类中可以有抽象方法和非抽象方法

              

猜你喜欢

转载自blog.csdn.net/weixin_42386014/article/details/81148538