在类中声明但不依赖于该类的任何特定实例化的面向对象的计算机编程方法称为静态方法。大多数编程语言在方法声明中包含关键字static,使方法成为静态方法。这些方法严格属于它们所包含的类而不是从该类实例化的任何对象...
在类中声明但不依赖于该类的任何特定实例化的面向对象的计算机编程方法称为静态方法。大多数编程语言在方法声明中包含关键字static,使方法成为静态方法。这些方法严格属于它们所包含的类而不是从该类实例化的任何对象。它们通常被称为类方法。类的字面名称通常用于访问静态方法,而不是用实例化对象的名称来引用它。Java允许使用对象名来引用这些方法,但是强烈建议不要这样做。如果使用对象名,阅读代码的人可能会将其中一个方法与实例方法混淆。静态方法通常用于不依赖于任何特定类的实例变量的实用程序类中。当程序员需要访问方法但无需访问该方法时,也会使用静态方法实例化它所包含的类。实用程序类通常不会实例化为对象。实用程序方法通常不需要修改对象信息。来自java.lang.math类的方法,例如pow(),实例方法可以直接访问实例变量、静态变量、实例方法,和静态方法。静态方法不能直接访问实例变量和实例方法。由于实例方法比静态方法更容易访问类成员,实例方法是常规类中通常使用的方法类型,静态方法的一个主要缺点是在使用多态性的情况下继承只要父静态方法未声明为final,就可以在子类中对同一子静态方法进行编码,就好像它被重写一样。这在技术上称为隐藏而不是重写,因为静态方法无法重写。使用hidden时,如果使用类名访问父静态方法,将使用父方法。如果使用对象名称访问重写的子静态方法,则将使用重写的子方法。当子对象作为父对象上推时,会出现问题。在这种情况下,对向上转换子静态方法的调用将使用父方法而不是预期的子方法。对于真正的多态性,子方法将是在上转换后激活的方法
-
发表于 2020-08-06 18:13
- 阅读 ( 943 )
- 分类:电脑网络