码迷,mamicode.com
首页 > 其他好文 > 详细

吾尝终日而思矣——2019.02.12

时间:2019-02-12 21:38:00      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:类型   类类型   details   方法   基类   为什么   width   over   art   

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 )的区别。重载的方法能否根据返回类型进行区分?

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

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

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

技术图片

参照:https://blog.csdn.net/simba_cheng/article/details/80835646

 

吾尝终日而思矣——2019.02.12

标签:类型   类类型   details   方法   基类   为什么   width   over   art   

原文地址:https://www.cnblogs.com/chrisweiii/p/10366937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!