首页 > 编程语言 >java中static方法不能被重写但是能重定义

java中static方法不能被重写但是能重定义

时间:2023-05-06 14:46:12浏览次数:48  
标签:java void Dog walk static Animal 能重 public

1、static方法不能被重写

示例1

class Animal{
    public static void walk() {
        System.out.println("Animal的行走方法");
    }
}
class Dog extends Animal{
    public void walk() {
        System.out.println("Dog的行走模式");
    }
    public static void main(String[] args) {
        new Dog().walk();
    }
}

会出现编译错误:java: com.sxhxh.Dog中的walk()无法覆盖com.sxhxh.Animal中的walk()
被覆盖的方法为static

2、static方法可以被重载

示例2

class Animal{
    public static void walk() {
        System.out.println("Animal的行走方法");
    }
}
class Lion extends Animal{
    public void walk(String s) {
        System.out.println("Lion的行走模式" + s);
    }
    public static void main(String[] args) {
        new Lion().walk("冲锋!!");
    }
}

运行结果:
Lion的行走模式冲突!!

3、static方法可以重新定义

示例3

class Animal{
    public static void walk() {
        System.out.println("Animal的行走方法");
    }
}
class Dog extends Animal{
    public static void walk() {
        System.out.println("Dog的行走模式");
    }
    public static void main(String[] args) {
        new Dog().walk();
    }
}

运行结果:Dog的行走模式

如果该代码去掉Dog中walk方法的static的话就变成示例1的情况,则编译不通过,
有static关键字则是在子类中进行该方法的重新定义,编译顺利通过。

标签:java,void,Dog,walk,static,Animal,能重,public
From: https://www.cnblogs.com/sxhxh/p/17377238.html

相关文章

  • static,和auto关键字
    这两个关键字是一对的static表示静态publicstaticvoidmothed1(){stringtext="234.567891230";//Console.WriteLine(int.Parse(text));//必须是对应的类型Console.WriteLine(double.Parse(text));C......
  • ubuntu x64 安装java 7
    安装步骤来自社区:https://help.ubuntu.com/community/Java中的http://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-6-7-jre-or-jdk因为是初次安装.所以,提示会不一样.简单的操作完成后.就可以使用了.安装jdk也一样的道理.操作完全可都一样.htt......
  • AndroidStudio插件GsonFormat快速实现JavaBean
    安装方法一:1.AndroidstudioFile->Settings..->Plugins–>Browserepositores..搜索GsonFormat2.安装插件,重启androidstudio方法二:1.下载GsonFormat.jar;2.AndroidstudioFile->Settings..->Plugins–>installpluginfromdisk..导入下载GsonFormat.jar3.重启android......
  • Java 内存分配全面浅析
    本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(JavaVirtualMachine,Java虚拟机)上,可以把JVM理解成Java程序和操作系......
  • 深入浅出RxJava(一:基础篇)
    RxJava正在Android开发者中变的越来越流行。唯一的问题就是上手不容易,尤其是大部分人之前都是使用命令式编程语言。但是一旦你弄明白了,你就会发现RxJava真是太棒了。这里仅仅是帮助你了解RxJava,整个系列共有四篇文章,希望你看完这四篇文章之后能够了解RxJava背后的思想,并且喜欢上......
  • 深入浅出RxJava(二:操作符)
    在第一篇blog中,我介绍了RxJava的一些基础知识,同时也介绍了map()操作符。当然如果你并没有意愿去使用RxJava我一点都不诧异,毕竟才接触了这么点。看完这篇blog,我相信你肯定想立即在你的项目中使用RxJava了,这篇blog将介绍许多RxJava中的操作符,RxJava的强大性就来自于它所定义的操......
  • 实现字符串的拼接---Java
    定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回调用此方法,并在控制台输出结果 例如: 数组为:int[]arr={1,2,3}; 执行后输出结果为:[1,2,3]packagestring.practice;/**实现字符串的拼接*定义一个方法,把int数组中的数据按照指定的格式拼接成一个字......
  • java封装和关键字
    一、封装封装:告诉我们如何正确设计对象的属性和方法对象代表什么,就得封装对应的数据,并提供数据对应的行为封装的好处:让编程变得很简单,有什么事,找对象,调方法降低学习成本,可以少学,少记,或者说压根不用学,不用记对象有哪些方法,有需要时去找就行二、Private关键字:是一个......
  • 5-关于JavaEE的版本
    JavaEE目前最高版本是JavaEE8JavaEE被Oracle捐献了,Oracle将JavaEE规范捐献给Apache了。Apache把JavaEE换名了,以后不叫JavaEE了,以后叫做jakartaEE。以后没有JavaEE了。以后都叫做JakartaEE。JavaEE8版本升级之后的"JavaEE9",不再是"JavaEE9"这个名字了,叫做JakartaEE9Java......
  • JavaScript 面试题
    一、event.stopPropagation和 event.preventDefault的区别1、event.stopPropagation(停止传播)   用于阻止捕获和冒泡事件的进一步传播。但是不能阻止同一Dom节点上的其它事件被调用。2、event.preventDefault(阻止默认)   方法可防止元素的默认行为。比如a标签的......