1.java中的final与C++中的const的区别

(1)final在java中定义常量,可作用于基本类型或者类类型,若是作用于类类型,则此类类型不能作为父类被继承,也就是说它的下面不能有子类,这样的类叫做原子类。 、

C++中的const定义常量。

(2)Java中的final如果是对于基本类型,那和C++   const是一样的  但是如果是对对象而言,不同了  

(3)final表示这个句柄是不可改变的 
  final   Object   obj=(Object)new   String("a"); 
  obj=(Object)new   String("hello");是非法的 
  但是依然可以调用obj的方法。如((String)obj).length()是合法的 。
  而C++如果一个对象被定义成const,就不能调用对象的方法。除非这个方法被定义成const.

(4)java中没有const,不能直接定义常量,是通过static final组合来实现的。

2.重载( Overload )和重写( Override )的区别。重载的方法能否根据返回类型进行区分?

方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。

里氏代换原则:任何基类可以出现的地方,子类一定可以出现。

为什么不能根据返回值重载?

java 中的final 与 const java final和const_java