欢迎来到天天文库
浏览记录
ID:14101324
大小:112.00 KB
页数:11页
时间:2018-07-26
《java初学者常见问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、instanceof instanceof是Java的一个二元操作符,和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。 举个例子: Strings="IAManObject!"; booleanisObject=sinstanceofObject; 我们声明了一个String对象引用,指向一个String对象,然后用instanceof来测试它所指向的对象是否是Object类的一
2、个实例,显然,这是真的,所以返回true,也就是isObject的值为true。 instanceof有一些用处。比如我们写了一个处理账单的系统,其中有这样三个类: publicclassBill{//省略细节} publicclassPhoneBillextendsBill{//省略细节} publicclassGasBillextendsBill{//省略细节} 在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。假设两种账单计算方法不同,而传入的Bill对象可能是两种中的任
3、何一种,所以要用instanceof来判断: publicdoublecalculate(Billbill){ if(billinstanceofPhoneBill){ //计算电话账单 } if(billinstanceofGasBill){ //计算燃气账单 } ... } 这样就可以用一个方法处理两种子类。 然而,这种做法通常被认为是没有好好利用面向对象中的多态性。其实上面的功能要求用方法重载完全可以实现,这是面向对象编程应有的做法,避免回到结构化编程模式。只要提供两个名
4、字和返回值都相同,接受参数类型不同的方法就可以了: publicdoublecalculate(PhoneBillbill){ //计算电话账单 } publicdoublecalculate(GasBillbill){ //计算燃气账单 } 所以,使用instanceof在绝大多数情况下并不是推荐的做法,应当好好利用多态。 instanceof一般情况下用在对象类型的强制转换, 例如: 继承关系classManagerextendsEmployee -------------
5、--------------------------------------------- publicvoiddoSomething(Employeee){ if(einstanceofManger){ Managerm=(Manager)e; } } 网络释义 1.运算符返回一个Boolean值,表明某个对象是否为特定类的一个实例。...instanceof运算符...返回一个Boolean值,表明某个给定的数是否是有穷的。 2.和回调概念 instanceof和回调概念...i
6、nstanceof和回调概念... 3.动态的 4.操作符 java的方法重写和覆盖什么是方法的重载:java中,可以在同一个类中用相同的名称定义两个或者多个方法,但是参数项不同(分为参数类型不同和参数数量不同)。当两个方法名称相同而参数项不同时,那么就认为此方法被重载,而此过程就被称为"方法重载"。-11-调用重载方法时,java使用参数的类型和数量决定实际调用重载方法的哪个版本。重载方法可以具有不同的返回类型,但返回类型本身不足以区分方法的两个版本。因此重载方法的参数类型或者数量必须不同.方
7、法重载支持多态性,因为它是java实现"一个接口,多重方法"模式的一种方式。此外,构造方法也可以被重载。什么是方法重写:在类体系结构中,当子类中的方法与其父类中的方法具有相同的方法时,则认为子类中的方法重写了父类中的方法。从子类中调用重写方法时,将总是调用出现在子类中的方法,而父类中的方法将会被隐藏。如果程序员需要访问重写方法的父类中的该方法,可以使用关键字super来完成。java中覆盖、重写与重载的区别收藏override为覆盖又叫重写,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到
8、不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。在覆盖要注意以下的几点:1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。3、重写的方法的返回值必须和被重写的方
此文档下载收益归作者所有