欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

里氏转换

程序员文章站 2022-04-28 09:19:10
里氏转换 之前匆匆忙忙学过里氏转换,但是又忘了,今天写下博客来记录吧。 概念:1 可以将子类对象(派生类)赋值给父类(基类)对象 父类:Person person=new Child(); 例子: 上图就是一个简单例子:将字符串数组ABC通过分隔符“|”进行分割,结果如黑窗口所示。 重点:请看红笔划 ......

里氏转换

之前匆匆忙忙学过里氏转换,但是又忘了,今天写下博客来记录吧。

概念:1 可以将子类对象(派生类)赋值给父类(基类)对象

      父类:Person person=new Child();

      例子:

    里氏转换

   上图就是一个简单例子:将字符串数组ABC通过分隔符“|”进行分割,结果如黑窗口所示。

重点:请看红笔划得地方,join("分隔符","params object[]value"),本来join方法里的参数是object类型的数组,但是这里却改写为string[]{...}

原因:object是父类,而string是子类,可以将子类直接赋值给父类。

        2 如果父类里放的是子类对象,那么就可以将父类对象强制转化为子类对象。

        Person person=new Child();

       Child child=(Child)person;

 例子:里氏转换

这个例子主要就是定义了父类person ,子类student,teacher, person类型的数组,里面存放了子类对象(student,teacher),和本类对象(person)。

当遍历数组,想输出各个对象的方法。请看红笔划的地方,将父类对象(sj[i])强转为子类,然后输出子类的方法。这就验证了里氏转换的第二个原则。

                 这篇文章的内容也是看了视频所写,旨在记录学习的过程,如有错误,还望指正,谢谢。