证明Java不是纯面向对象语言

一、论述

       在我们刚接触Java语言的时候,所有的教材或老师都会和你讲这样一点:Java是一门面向对象的编程语言。用2015年比较流行的网络语就是:Java是一门面向对象的编程语言、Java是一门面向对象的编程语言Java是一门面向对象的编程语言,重要的事说三遍!!!

       那Java到底是怎样的一门面向对象的编程语言呢,鄙人给出的结论是Java不是纯面向对象的。也许,已经有前辈提出了和我一样的结论,这没关系。下面通过一个具体的实例进行证明一下我的结论。

 

二、实例证明

       1、定义一个通用的接口:CompareMethod

/**
 * Created by user on 2016/1/20.
 */
public interface CompareMethod {
    public boolean isEqual(int x, int y);
    public boolean isEqual(Integer x, Integer y);
}

     

        2、以Java语言和Scala语言分别实现这个接口

/**
 * Created by user on 2016/1/20.
 */
public class CompareMethodWithJava implements CompareMethod{
    @Override
    public boolean isEqual(int x, int y) {
        return x == y;
    }

    @Override
    public boolean isEqual(Integer x, Integer y) {
        return x == y;
    }
}
/**
  * Created by user on 2016/1/20.
  */
class CompareMethodWithScala extends CompareMethod{
  override def isEqual(x: Int, y: Int): Boolean = {
       x == y
  }

  override def isEqual(x: Integer, y: Integer): Boolean = {
       x == y
  }
}

       

         3、分别给出对应的测试用例

/**
 * Created by user on 2016/1/20.
 */
public class OptWithJava {
    public static void main(String args[]){
        CompareMethodWithJava cmwj = new CompareMethodWithJava();
        System.out.println("1>>>>: " + cmwj.isEqual(10,10));

        Integer x = new Integer(10), y = new Integer(10);
        System.out.println("2>>>>: " + cmwj.isEqual(x,y));
    }
}
/**
  * Created by user on 2016/1/20.
  */
object OptWithScala extends App{
    def result1() : Boolean = {
       def x: Int = 10
       def y: Int = 10
       new CompareMethodWithScala().isEqual(x,y)
    }
    println("1<<<<: " + result1())

    def result2() : Boolean = {
       def x: Integer = new Integer(10)
       def y: Integer = new Integer(10)
       new CompareMethodWithScala().isEqual(x,y)
    }
    println("2<<<<: " + result2())
}

三、测试结果比较

     1、运行Java类型的测试用例,结果如附件中的图一

     2、运行 Scala类型的测试用例,结果如附件中的图二

     3、由此可以证明:Java不是纯面向对象语言

猜你喜欢

转载自zh-workhard-java.iteye.com/blog/2272231