博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 静态方法在继承时的表现
阅读量:4094 次
发布时间:2019-05-25

本文共 2881 字,大约阅读时间需要 9 分钟。

静态方法在继承时的情况

如果在父类定义了静态方法,子类对父类进行继承的时候,可以继承静态方法,但是在子类中表现为隐藏状态。

静态方法有两种调用方式:

  1. 在使用 类名.静态方法 调用的时候,直接调用的是各自类的静态方法;
  2. 使用对象引用进行静态方法调用时候,会调用该引用所属类别的静态方法;如果子类的引用且子类中没有定义所调用的静态方法,则会调用从父类继承来的静态方法(在子类中表现为引用)。
import java.io.IOException;class A{
public static String staticStr= "A的静态属性" ; public String nonstaticStr = "A的非静态属性" ; public static void staticMethod(){ System.out.println("A的静态方法"); } public void nonStaticMethod(){ System.out.println("A的非静态方法"); }}class B extends A{
// public static String statictaticStr= "B的静态属性" ; public String nonstaticStr = "B的非静态属性" ;// public static void staticMethod(){
// System.out.println("B的静态方法");// } public void nonStaticMethod(){ System.out.println("B的非静态方法"); }}class C extends A{
}public class test1 {
public static void main(String[] args) throws IOException { A a = new B(); System.out.println(a.staticStr); System.out.println(a.nonstaticStr); a.staticMethod(); a.nonStaticMethod(); System.out.println("####################"); C c = new C(); System.out.println(c.staticStr); System.out.println(c.nonstaticStr); c.nonStaticMethod(); System.out.println("####################"); B b = new B(); System.out.println(b.staticStr); System.out.println(b.nonstaticStr); b.staticMethod(); b.nonStaticMethod(); }}/*A的静态属性A的非静态属性A的静态方法B的非静态方法####################A的静态属性A的非静态属性A的非静态方法####################A的静态属性B的非静态属性A的静态方法B的非静态方法*/
import java.io.IOException;class A{    public static String staticStr= "A的静态属性" ;    public String nonstaticStr = "A的非静态属性" ;    public static void staticMethod(){        System.out.println("A的静态方法");    }    public void nonStaticMethod(){        System.out.println("A的非静态方法");    }}class B extends A{    public static String statictaticStr= "B的静态属性" ;    public String nonstaticStr = "B的非静态属性" ;    public static void staticMethod(){        System.out.println("B的静态方法");    }    public void nonStaticMethod(){        System.out.println("B的非静态方法");    }}class C extends A{}public class test1 {    public static void main(String[] args) throws IOException {        A a = new B();        System.out.println(a.staticStr);        System.out.println(a.nonstaticStr);        a.staticMethod();        a.nonStaticMethod();        System.out.println("####################");        C c = new C();        System.out.println(c.staticStr);        System.out.println(c.nonstaticStr);        c.nonStaticMethod();        System.out.println("####################");        B b = new B();        System.out.println(b.staticStr);        System.out.println(b.nonstaticStr);        b.staticMethod();        b.nonStaticMethod();    }}/*A的静态属性A的非静态属性A的静态方法B的非静态方法####################A的静态属性A的非静态属性A的非静态方法####################A的静态属性B的非静态属性B的静态方法B的非静态方法*/

转载地址:http://tstii.baihongyu.com/

你可能感兴趣的文章
C语言内存检测
查看>>
Linux epoll模型
查看>>
Linux select TCP并发服务器与客户端编程
查看>>
Linux系统编程——线程池
查看>>
基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr
查看>>
Linux 线程信号量同步
查看>>
C++静态成员函数访问非静态成员的几种方法
查看>>
类中的静态成员函数访问非静态成员变量
查看>>
C++学习之普通函数指针与成员函数指针
查看>>
C++的静态成员函数指针
查看>>
Linux系统编程——线程池
查看>>
yfan.qiu linux硬链接与软链接
查看>>
Linux C++线程池实例
查看>>
shared_ptr简介以及常见问题
查看>>
c++11 你需要知道这些就够了
查看>>
c++11 你需要知道这些就够了
查看>>
shared_ptr的一些尴尬
查看>>
C++总结8——shared_ptr和weak_ptr智能指针
查看>>
c++写时拷贝1
查看>>
C++ 写时拷贝 2
查看>>