因为java的oop面向对象相对纯粹,当然也不绝对纯粹,比如java也还有原始数据类型,并不是真的万事万物都是对象,后续的一些语言,比如scala,kotlin,dart,swift都做到了更加纯粹的面向对象
但是java比起你说的那两个而言,是要更加纯粹一点的面向对象
一个例子就是,java的main不允许以顶层成员的方式存在,必须做成static,放到一个class里面去
java的所有顶层成员,只有一个,那就是class,interface也算是一种class,后续的enum,record,sealed,functional interface什么也都可以看成是一种class,原始数据类型不允许出现在class以外的地方,只能放在class里面
java顶层的类型,只有一个,class,就很简单,强制封装了所有的代码,其他的,在class里面
所以java的面向对象相比起你说的那两个而言,要更加纯粹,所以当以前的人说起oop的时候,就很自然地联想起java
而且java对于非oop的特性,添加上去非常谨慎,一般不主动添加,比如顶层函数,这个估计java永远都不会弄上去,但是大多数其他语言,都已经加上去了,包括scala,估计也会在dotty之后正式加入顶层函数