天天看點

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修飾

                    類:抽象類不能被執行個體化,但是抽象類中含有構造方法,抽象類中可以有抽象方法和非抽象方法