里氏转换

里氏转换

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

概念: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])强转为子类,然后输出子类的方法。这就验证了里氏转换的第二个原则。

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

posted @ 2018-04-18 16:05  金一,梦开始的地方  阅读(569)  评论(3编辑  收藏  举报