java可以重写static方法吗 java中抽象方法不能为private,final或者static,为什么?细细说明,或给个例子?

[更新]
·
·
分类:互联网
4761 阅读

java可以重写static方法吗

java中抽象方法不能为private,final或者static,为什么?细细说明,或给个例子?

java中抽象方法不能为private,final或者static,为什么?细细说明,或给个例子?

两种角度看。从语法的角度看,就是禁止抽象的 static 方法。从设计的角度看,允许抽象类有抽象的 static 方法没有意义。
1. static 方法不是属于任何一个具体对象的,它不表示对象的行为,而抽象类是用于抽象属于此类对象的行为,而不是用来抽象类本身。
2. java中需要静态方法,主要原因是函数只能挂在类下面,像kotlin这种语言,因为函数可以和类平级,所以干脆禁止了static 成员。

java中定义一个方法加上static和不加有什么区别?

这个表示这个方法为静态方法!在其它类中可以直接通过类名去调用这个方法!例如publicstaticvoidmain(String[]args){(

Java里面,创建对象放在main方法外面为什么要用static修饰?

是的,在主函数外面定义的变量,如果你要在主函数里面调用的话一定要用静态修饰符,来修饰你的变量。
这是因为静态函数,不是通过对象的实例来调用的,它是通过类来调用的。
而非静态变量,是通过类实例来调用的。
这样看,主函数作为一个静态函数,如果想调用外部定义的变量,那也就是通过类这一级进行调用。
当然啦,如果说你在这个主函数外面定义一个变量,然后又在非静态函数里面调用它,那你就不需要加静态修饰符,但是这样子定义的变量是没有用处的,因为你在这个类里只要有一个静态的main函数,就证明这个类是一个有出口的类。
从理论上讲,是可以用这个类作为一个实例化的对象,在其他类中进行调用,但是这样子设计软件程序的话,就不对啦。
这会造成你的程序至少有两个以上的出口。
这个在程序设计里面算是个错误。
现在简单说一下,静态修饰符的作用。
静态修饰符可以用来修饰主函数作为程序的入口。程序加载时,这个主函数也会被加载,不需要实例化,对象来调用。
静态修饰符也可以修改修饰一般的函数。这种函数直接通过类来进行调用。不通过类的实例来调用。
静态修饰符也可以修饰一段代码。这种情况一般用于数据的初始化。比如说一些字典类的数据,需要这么做。因为程序在启动的时候需要这些数据,因此这些数据需要在启动之前加载。
静态修饰符也可以修饰一些变量。这些变量可以通过类来直接进行调用,可以作为一些共享数据在程序中进行修改和读取。这种变量在使用的过程中要注意共享的问题。尤其是在多线程条件下只允许一个线程可以对其进行写入。
以上这些,就是静态修饰符在程序中的一些具体应用实例,静态修饰符在程序语言中是非常有用的,目前几乎所有的程序语言都支持静态修饰符,就连一直不用静态修饰符的Ruby,现在也支持了静态修饰符可见这种修饰符的强大。
好了,这个问题我们就先聊这些,欢迎订阅丁哥开讲,下次再见。