多态的使用二——INSTANCEFO

这篇博客探讨了Java中的面向对象特性,包括父类与子类的概念,以及类型转换的过程。通过实例展示了如何进行向上转型(父类到子类)和向下转型(子类到父类),并强调了类型转换在方法调用中的作用。此外,还涉及了instanceof关键字的使用来检查对象的类型。
摘要由CSDN通过智能技术生成

父类

//父类
public class /*父类名*/ {
    public void run(){
        System.out.println("run");
    }
}

子类

//子类
public class /*子类名*/ extends /*父类名*/{
    public void go(){
        System.out.println("go");
    }
}
//测试类1
public class Application {
    public static void main(String[] args) {
        //类型之间的转化:父类(高)   子类(低)
        /*父类名*/ S1 = new /*子类名*/();
        //低转高可能会丢失一些自己本来的方法

        //高转低
        //S1将这个对象转换为Student类型,我们就可以使用Stundet类型的方法了
        /*/*父类类型*/ S2 = (Student) S1;
        S2.go();*/

        //简单化:
        ((Student)S1).go();
    }
}
/*      //Object>String
        //Object>Person>Teacher
        //Object>Person>Stundent
        Object S1 = new Student();

        System.out.println(S1 instanceof Student);
        System.out.println(S1 instanceof Person);
        System.out.println(S1 instanceof Object);
        System.out.println(S1 instanceof Teacher);
        System.out.println(S1 instanceof String);
        System.out.println("============");

        Person S2 = new Student();

        System.out.println(S2 instanceof Student);
        System.out.println(S2 instanceof Person);
        System.out.println(S2 instanceof Object);
        System.out.println(S2 instanceof Teacher);
        //编译报错,Person与String没关系 System.out.println(S2 instanceof String);
        System.out.println("============");

        Student S3 = new Student();
        System.out.println(S3 instanceof Student);
        System.out.println(S3 instanceof Person);
        System.out.println(S3 instanceof Object);
        //编译报错,Student与Teacher没关联 System.out.println(S3 instanceof Teacher);
        //编译报错,Student与String没关联 System.out.println(S3 instanceof String);*/
/**
 1.父类引用指向子类的对象
 2.把子类转换为父类,向上转换
 3.把父类转换为子类,向下转型:强制转换
 4.方便方法的调用,减少重复的代码
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值