面向对象(高级)————instanceof关键字
来源:互联网 发布:php if判断语句 编辑:程序博客网 时间:2024/05/17 11:05
面向对象(高级)————instanceof关键字
分类: Java
面向对象(高级)————instanceof关键字
可以使用instanceof关键字判断一个对象到底是哪一个类的实例。
对象 instanceof 类 => 返回 boolean类型
instanceof 实例一:
class A{
public void fun1(){
System.out.println("A --> public void fun1(){}");
}
public void fun2(){
this.fun1();
}
};
class B extends A{
public void fun1(){
System.out.println("B --> public void fun1(){}");
}
public void fun3(){
System.out.println("C --> public void fun3(){}");
}
};
public class InstanceOfDemo01{
public static void main(String args[]){
A a1 = new B();//向上转型
System.out.println(a1 instanceof A);
System.out.println(a1 instanceof B);
A a2 = new A();//实例化对象
System.out.println(a2 instanceof A);
System.out.println(a2 instanceof B);
}
}
使用instanceof 可以做什么呢?
可以根据对象选择对象的调用方法:
class A{
public void fun1(){
System.out.println("A --> public void fun1(){}");
}
public void fun2(){
this.fun1();
}
};
class B extends A{
public void fun1(){
System.out.println("B --> public void fun1(){}");
}
public void fun3(){
System.out.println("B --> public void fun3(){}");
}
};
class C extends A{
public void fun1(){
System.out.println("C --> public void fun1(){}");
}
public void fun4(){
System.out.println("C --> public void fun3(){}");
}
};
public class InstaceofDemo02{
public static void main(String args[]){
fun(new B());
fun(new C());
}
public static void fun(A a){
if(a instanceof B){
a.fun3();
}
if(a instanceof C){
a.fun4();
}
}
}
在开发中一定要注意,对象向下转型操作最好增加验证,以保证转型时不会出现classCastException
如果现在增加新的子类,则肯定要修改fun()方法,这样一来程序就失去了灵活性,所以在程序的开发重点的设计应该放在父雷上,只要父类设计的足够合理,则开发肯定会非常方便。
而且在开发中一定要记住以下几点:
一个类一定不要继承一个已经实现好的类,而只能继承抽象类或者实现接口。
可以使用instanceof关键字判断一个对象到底是哪一个类的实例。
对象 instanceof 类 => 返回 boolean类型
instanceof 实例一:
class A{
public void fun1(){
System.out.println("A --> public void fun1(){}");
}
public void fun2(){
this.fun1();
}
};
class B extends A{
public void fun1(){
System.out.println("B --> public void fun1(){}");
}
public void fun3(){
System.out.println("C --> public void fun3(){}");
}
};
public class InstanceOfDemo01{
public static void main(String args[]){
A a1 = new B();//向上转型
System.out.println(a1 instanceof A);
System.out.println(a1 instanceof B);
A a2 = new A();//实例化对象
System.out.println(a2 instanceof A);
System.out.println(a2 instanceof B);
}
}
使用instanceof 可以做什么呢?
可以根据对象选择对象的调用方法:
class A{
public void fun1(){
System.out.println("A --> public void fun1(){}");
}
public void fun2(){
this.fun1();
}
};
class B extends A{
public void fun1(){
System.out.println("B --> public void fun1(){}");
}
public void fun3(){
System.out.println("B --> public void fun3(){}");
}
};
class C extends A{
public void fun1(){
System.out.println("C --> public void fun1(){}");
}
public void fun4(){
System.out.println("C --> public void fun3(){}");
}
};
public class InstaceofDemo02{
public static void main(String args[]){
fun(new B());
fun(new C());
}
public static void fun(A a){
if(a instanceof B){
a.fun3();
}
if(a instanceof C){
a.fun4();
}
}
}
在开发中一定要注意,对象向下转型操作最好增加验证,以保证转型时不会出现classCastException
如果现在增加新的子类,则肯定要修改fun()方法,这样一来程序就失去了灵活性,所以在程序的开发重点的设计应该放在父雷上,只要父类设计的足够合理,则开发肯定会非常方便。
而且在开发中一定要记住以下几点:
一个类一定不要继承一个已经实现好的类,而只能继承抽象类或者实现接口。
0 0
- 面向对象(高级)————instanceof关键字
- 面向对象(高级)————instanceof关键字
- 面向对象高级——instanceof关键字的使用以及抽象类与接口的应用
- Java-面向对象(高级篇)--instanceof关键字
- Java面向对象高级--instanceof关键字
- JAVA面向对象-----instanceof 关键字
- Java面向对象instanceof关键字
- Java面向对象-instanceof关键字
- 面向对象——关键字
- 面向对象—this关键字
- 面向对象—static关键字
- Javascript面向对象(十)——类检测instanceof
- 面向对象高级——final关键字的使用以及抽象类的基本概念
- 面向对象(一)——包、构造器、多态和instanceof
- 面向对象(高级)——对象的多态性
- 面向对象(高级)——对象的多态性
- Java高级面向对象——原型
- JS——面向对象高级
- Android上实现仿IOS弹性ScrollView
- Single Number
- Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+\(退出)和ctrl+d(EOF)的区别
- 面向对象(高级)——对象的多态性
- 学习Python(一):开始
- 面向对象(高级)————instanceof关键字
- LeetCode Convert Sorted List to Binary Search Tree 解题报告
- 面向对象(高级)抽象类与接口的应用
- HDU 4814 Golden Radio Base 数学 模拟 或者乱搞。。。。
- 〖面向对象(高级)〗_实例分析:宠物商店笔记
- 校园招聘总结
- 【面向对象(高级)】_Object类笔记
- C++11的一些特性
- getWindow().setFlags()