// 静态方法不能被覆盖

 

/*class Super{

    static String name(){

        return "mother";

    }

}

 

class Test02{

    public static void main(String[] args){

        Super s3 = new Super();

        System.out.println(s3.name());

    }

}

*/

 

/*

* result:mother

*/

 

/*

class Super{

    static String name(){

        return "mother";

    }

}

 

class Sub extends Super{

     String name(){

        return "baby";

    }

}

 

class Test02{

    public static void main(String[] args){

        Super s1 = new Sub();

        System.out.println(s1.name());        

    }

}

*/

 

// result: mother

 

/*

class Super{

     String name(){

        return "mother";

    }

}

 

class Sub extends Super{

    static String name(){

        return "baby";

    }

}

 

class Test02{

    public static void main(String[] args){

        Super s1 = new Sub();

        System.out.println(s1.name());        

    }

}

*/

 

// result: mother

 

class Super{

    static String name(){

        return
"mother";

    }

}

 

class Sub extends Super{

    static String name(){

        return
"baby";

    }

}

 

class Test02{

    public
static
void main(String[] args){

        Super s = new Super();

        System.out.println(s.name());        

        Super s1 = new Sub();

        /*运行时是指向Sub的类,s1.name()应该输出"baby"的。却输出mother了*/

        System.out.println(s1.name());

        /*

         * 结果是:mother

         * "静态方法在编译时根据调用该方法的类或对象所属的类决定

         * 实例方法在运行时根据对象所属的类决定"该如何理解?

         */

    }

}

 

Java静态方法不能被覆盖的更多相关文章

  1. 内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例

    内部类访问外部类的变量必须是final吗? 如下: package com.java.concurrent; class A { int i = 3; public void shout() { cl ...

  2. java的重载、覆盖和隐藏的区别

    重载:方法名相同,但参数不同的多个同名函数 注意:1.参数不同的意思是参数类型.参数个数.参数顺序至少有一个不同 2.返回值和异常以及访问修饰符,不能作为重载的条件(因为对于匿名调用,会出现歧义,eg ...

  3. java中重载、覆盖和隐藏三者的区别分析

    重载:方法名相同,但参数不同的多个同名函数 注意:1.参数不同的意思是参数类型.参数个数.参数顺序至少有一个不同 2.返回值和异常以及访问修饰符,不能作为重载的条件(因为对于匿名调用,会出现歧义,eg ...

  4. java 静态方法和实例方法的区别

    转自 java 静态方法和实例方法的区别 静态方法和实例方法的区别主要体现在两个方面:   在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法 ...

  5. c#和java中的方法覆盖——virtual、override、new

    多态和覆盖 多态是面向对象编程中最为重要的概念之一,而覆盖又是体现多态最重要的方面.对于像c#和java这样的面向对象编程的语言来说,实现了在编译时只检查接口是否具备,而不需关心最终的实现,即最终的实 ...

  6. Delphi中静态方法重载还是覆盖的讨论

    Delphi中静态方法重载还是覆盖的讨论 新人学习Delphi的时候,容易搞不懂的一个问题,当子类方法和基类方法同名,并且参数也一样的时候,叫做什么呢?是覆盖,还是重载呢? 答案是隐藏父类方法. 一般 ...

  7. java静态方法(变量)、非静态方法(变量)区别

    java静态方法.静态变量在调用时生成唯一标识,即在内存中给定一个静态位子,这样在调用时可以直接找到,而且会节省内存.但如果声明的静态方法.静态变量过多,会占用过多内存,有可能导致内存溢出. 非静态方 ...

  8. Java继承方法隐藏(覆盖)

    方法隐藏 一个类从其超类继承所有非私有静态方法.在子类中重新定义继承的静态方法称为方法隐藏.子类中的重定义静态方法隐藏其超类的静态方法.在类中重定义非静态方法称为方法覆盖.关于方法隐藏的重定义方法(名 ...

  9. Java静态方法和实例方法的区别以及this的用法

    Java静态方法和实例方法 相同之处:都能接收传过来的参数,都能返回参数. 不同之处:有static就是静态方法,静态方法在另外一个类里面,不用new这个静态方法所在的类,也能直接访问这个方法,比较方 ...

随机推荐

  1. 51nod1228

    伯努利数 这个是答案 其中的b是伯努利数,可以n^2预处理 伯努利数n^2递推 #include<bits/stdc++.h> using namespace std; typedef l ...

  2. keystone nova v2 python

  3. Oauth2的遇坑一点提示(Spring Security Oauth2 / Cloud)

    1)使用@EnableOAuth2Sso的网页客户端,登录是成功的可是总是像没成功一样. 提示错误:没有 症结:context-path没设置,或者设置为/(ROOT) 参考资料:https://sp ...

  4. 【217】◀▶ IDL 控制语句说明

    参考:Statements Routines —— 控制语句关键字 01   FOR 循环语句. 02   FOREACH 循环语句. 03   WHILE...DO 循环语句. 04   IF... ...

  5. 常用模块 re模块与正则表达式

    re模块 正则: 正则就是用一些具有特殊含义的符号组合到一起(称之为正则表达式)来描述字符或字符串的方法.或者说:正则就是用描述一类事物的规则.(在python中) 它内嵌在python中,并通过re ...

  6. UVaLive 6847 Zeroes (找规律,水题)

    题意 :给定一个范围,然后让你求在这个范围内所有的数的阶乘末尾0的个数有多少种. 析:找规律,写几个就会发现每隔5个会增加一个0,因为要么乘10了,要么乘5了. 代码如下: #pragma comme ...

  7. Android 4.2开发环境搭建

    一.工具 jdk1.7; eclipse 4.3(for java ee); Android SDK; 二.安装JDK并配置 安装略,配置如下: 右击 “我的电脑”->属性->高级系统设置 ...

  8. Spring中配置Dbutils

    <!--配置QueryRunner--> <bean id="runner" class="org.apache.commons.dbutils.Que ...

  9. CodeForces599C【贪心】

    题意: 给你一个序列,要求你从小到大排序,你可以划分成一个块一个块地进行块内排序,问你最多能分成几个块 思路: 贪心,首先感觉就是有正序的话我就分开啊: 难道倒序不能分块?321肯定不行啊. 存不存在 ...

  10. Linux系统查看网站访问日志

    日志地址 /www/wwwlogs/网站名称-access_log 下载到本地,改成txt文件 打开WPS,创建表格,导入数据,选择文件,然后点击下一步,直到选择文件类型时,选择分隔符号,下一步,把勾 ...