在Java中,可以使用instanceof判断对象到底是哪一个类的实例。
在开发中一定要注意:对于向下转型夫人操作,要同过if(a类 instanceof b类)来判断是否可以向下转型
一个类最好不要继承已经实现好的类,最好继承抽象类或接口
class Demo01 {
public void fun1() {
System.out.println("demo01类的fun1方法");
}
public void fun2() {
this.fun1();// 调用fun1方法
}
}
public void fun1() {
System.out.println("demo01类的fun1方法");
}
public void fun2() {
this.fun1();// 调用fun1方法
}
}
class Demo02 extends Demo01 {
@Override
public void fun1() {
// 重写demo01类中的fun1()
super.fun1();
System.out.println("demo02类中的重写后的fun1方法");
}
public void fun3() {
System.out.println("demo02类中的fun3方法");
}
}
@Override
public void fun1() {
// 重写demo01类中的fun1()
super.fun1();
System.out.println("demo02类中的重写后的fun1方法");
}
public void fun3() {
System.out.println("demo02类中的fun3方法");
}
}
public class FirstDemo {
/**
* instanceof 对象instanceof类返回Boolean类型
*
* @param args
*/
public static void main(String[] args) {
Demo01 demo01 = new Demo02();//deom02继承demo01,向上转型实例化对象,构建转型关系
//对象instanceof类返回Boolean类型
System.out.println("demo01是不是demo01类的实例化对象--->"+(demo01 instanceof Demo01));
System.out.println("demo01是不是demo02类的实例化对象--->"+(demo01 instanceof Demo02));
Demo01 demo02 = new Demo01();//demo02是自己类demo01类的实例化对象
//对象instanceof类返回Boolean类型
System.out.println("demo02是不是demo01类的实例化对象--->"+(demo02 instanceof Demo01));
System.out.println("demo02是不是demo02类的实例化对象--->"+(demo02 instanceof Demo02));
}
}
/**
* instanceof 对象instanceof类返回Boolean类型
*
* @param args
*/
public static void main(String[] args) {
Demo01 demo01 = new Demo02();//deom02继承demo01,向上转型实例化对象,构建转型关系
//对象instanceof类返回Boolean类型
System.out.println("demo01是不是demo01类的实例化对象--->"+(demo01 instanceof Demo01));
System.out.println("demo01是不是demo02类的实例化对象--->"+(demo01 instanceof Demo02));
Demo01 demo02 = new Demo01();//demo02是自己类demo01类的实例化对象
//对象instanceof类返回Boolean类型
System.out.println("demo02是不是demo01类的实例化对象--->"+(demo02 instanceof Demo01));
System.out.println("demo02是不是demo02类的实例化对象--->"+(demo02 instanceof Demo02));
}
}
转载于:https://blog.51cto.com/haiyuanxi/924078