//AA是基类
class AA {
public void print() {
System.out.println("AA's print()");
}
public void aMethod() {
System.out.println("AA's aMethod()");
}
}
//BB是AA的子类
public class BB extends AA {
public void print() {
System.out.println("BB's print()");
}
public void bMethod() {
System.out.println("BB's bMethod()");
}
public static void main(String[] args) {
System.out.println("***1***");
AA aa = new AA();
aa.print();
System.out.println(aa instanceof BB);
System.out.println(aa instanceof AA);
aa.aMethod();
//aa.bMethod(); 不能调用
System.out.println();
System.out.println("***2***");
BB bb = new BB();
bb.print();
System.out.println(bb instanceof BB);
System.out.println(bb instanceof AA);
bb.aMethod();
bb.bMethod();
System.out.println();
System.out.println("***3***");
AA cc = (AA) bb;
cc.print();
System.out.println(cc instanceof BB);
System.out.println(cc instanceof AA);
cc.aMethod();
//cc.bMethod(); 不能调用
System.out.println();
System.out.println("***4***");
AA dd = new BB();
dd.print();
System.out.println(dd instanceof BB);
System.out.println(dd instanceof AA);
dd.aMethod();
//dd.bMethod(); 不能调用
System.out.println();
System.out.println("***5***");
cc = new AA();
cc.print();
System.out.println(cc instanceof BB);
System.out.println(cc instanceof AA);
cc.aMethod();
System.out.println();
}
}
--------------------------------------------------------------------------------------------------
下面是测试结果:
***1***
AA's print()
false
true
AA's aMethod()
***2***
BB's print()
true
true
AA's aMethod()
BB's bMethod()
***3***
BB's print()
true
true
AA's aMethod()
***4***
BB's print()
true
true
AA's aMethod()
***5***
AA's print()
false
true
AA's aMethod()
----------------------------------------------------------------------------------------------------------------
小结:
1.instanceof 作用是测试它左边的对象是否是它右边的类的实例.
2.继承: A是基类,B是A的子类.如果A a=new B(); 则a只能调用A类的方法,如果B类有重写A类的方法,则a调用的方法其实是B类重写的方法.
3.继承: 由测试3和测试4结果一样,可以得知,AA cc = (AA) bb; (bb是BB引用类型)和 AA dd = new BB(); 中 cc 和 dd 性质是完全一样的. AA cc = (AA) bb; 相当于 AA cc = new BB();
分享到:
相关推荐
实际上,在一个Web应用程序的执行期间,PHP 5提供给开发者至少两种方法来检查对象类型——它们分别是“instanceof”操作符和“类型提示”特征。现在转到本文的主题,我将介绍PHP 5中\\\"instanceof\\\"操作符的使用...
JS中typeof与instanceof的区别
Instance of Subclass, Subclass, Instance of Superclass, Superclass,及方法直接的关系
NULL 博文链接:https://yxc-gdut.iteye.com/blog/1812766
java学习-java中的继承extents和instanceof关键字
向下转型和instanceof运算符的应用.pdf
因为在项目中遇到了instanceof,因此总结了对instanceof关键字的理解,有需要的可以下载来看看。
ES5的instanceof手写实现
那么instanceof的这种行为到底是如何实现的呢,现在让我们揭开instanceof背后的迷雾。 instanceof原理 照惯例,我们先来看一段代码: 代码如下: function Cat(){} Cat.prototype = {} function Dog(){} Dog.prototype...
instanceof使用详细说明 最详细的 不看后悔的
NULL 博文链接:https://chaoyi.iteye.com/blog/2079574
使用方法:result = object instanceof class其中result是必选项。任意变量。object是必选项。任意对象表达式。class是必选项。任意已定义的对象类。 说明如果 object 是 class 的一个实例,则 instanceof 运算符...
15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof...
理解Javascript理解instanceof实现原理
主要介绍了Java instanceof关键字的的进一步理解,本文用一些实例讲解了instanceof操作符的一些知识,需要的朋友可以参考下
JS:typeof instanceof constructor prototype区别
用法从javascript中的Error继承的许多解决方案容易出错(双关语)和棘手。 使用这个库,你可以继承Error就像你从任何其他 javascript 对象/类继承一样。 这是使用库的示例。 var Throwable = require ( 'throwable' ...
instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型...接下来通过本文给大家介绍java 中的instanceof用法详解及instanceof是什么意思,需要的朋友参考下吧
instanceof是Java的一个二元操作符,和==,>,<是同一类东西。接下来通过本文给大家介绍Java中的instanceof关键字在Android中的用法,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧