zoukankan      html  css  js  c++  java
  • java 子类父类相互转换

    子类转父类 (父类引用指向子类对象)

    子类可以转换为父类,如下父类FruitTest与其子类AppleTest

    class FruitTest {
        String str = "FruitTest";
        public String get() {return str;}
        public void set(String str) {this.str = str;}
    
    }
    
    class AppleTest extends FruitTest {
        String str = "AppleTest";
    }

    FruitTest obj = new AppleTest(); 是正确的

    obj.str 结果为"FruitTest",不是子类中的str("AppleTest")。obj的属性变量都是父类的。

    obj.get() 得到的是"FruitTest",执行的是父类中的方法,但若是子类重写了父类方法,执行的则是子类的方法

    class AppleTest extends FruitTest {
        String str = "AppleTest";
        public String get() {return str;};
    }

    则obj.get()得到的是"AppleTest" 。

    总结:子类可以转换为父类,即父类引用指向子类对象。引用的属性是父类的,方法若果被子类重写则是子类的方法。

    父类转子类(子类引用指向父类对象)

    父类不可以直接转换为子类,AppleTest obj = new FruitTest();  是错误的。

    AppleTest obj = (AppleTest) new FruitTest(); 编译时也会报错。

    FruitTest obj = new AppleTest();
    AppleTest test = (AppleTest)obj;  这两句是正确的。

    父类若转换为子类,父类引用必须指向的是一个子类对象。实质上是将一个指向子类对象的父类引用改为了子类引用。

  • 相关阅读:
    如何插入和查找记录(行)(十一)
    如何查看数据表及数据表结构(十)
    如何创建数据表(九)
    MySQL常见的数据类型(八)
    MySQL数据库的常见操作(七)
    如何修改提示符(六)
    MySQL的登录和退出(五)
    如何启动和关闭MySQL?(四)
    如何配置MySQL?(三)
    如何安装MySQL?(二)
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/8982594.html
Copyright © 2011-2022 走看看