摘要:
一. 下面讲述多态出现以后,继承体系中所涉及的成员的一些特点。 想要讨论多态,没有继承是不行的。 不写构造函数,是因为构造函数是固定在静态中,是子类的实现过程? 成员函数是非静态的。 接下来就对这个三个进行介绍。 接下来的讲解中,只介绍特殊情况,非特殊情况没有特点。 只要一说多态,就出现父类引用指向 阅读全文
摘要:
一. 上面的截图是我们在多态的学习中所书写的语句,这样一来method()方法就可以提高复用性,不需要每一个物种的动物都去指挥它们吃饭。但是,需要a抓老鼠。再学习了多态的类型转化后,语句就可以修改成下面这样, 实际上,我认为这样的书写仅仅是为了使a能够调用抓老鼠的功能,并不符合真实的使用情况。因为这 阅读全文
摘要:
一. 之前的举的例子,Animal a=new Cat(); 当动物的引用指向了猫对象的时候,这时候猫对象具备了两种形态。要么是猫的形态,要么是动物的形态。这时候,猫对象就具备了多态性。当父类指向子对象,这是一种提升。这叫向上转型。转成了动物类型。如果需要子类来进行操作的话,就需要向下转型。 现在再 阅读全文
摘要:
一. 对整个流程进行一个梳理,主函数中开始是创建对象,通过对象来调用它的各种方法。后来,有了多态的概念,就改变了程序的写法。 开始的书写是双杠斜线省去的那部分,后面的那部分是多态的写法,dos的编译运行的结果如下, 由于是animal来运行,那么肯定没有子类的抓老鼠的功能。有的人说,非要抓老鼠,那么 阅读全文
摘要:
一. 所有物种都能吃饭,这是可以肯定的,前期也是可以设置的,但是后期各个子类中的动作,比如“拱地”,“啃骨头”这些都是animal无法确定的,因此不会进行定义这样的方法。 如果非要使用,那就还要用各个子类去进行各自的调用,比如捉老鼠,啃骨头....这样就体现不了多态了。 实现是一种特殊的继承。为什么 阅读全文
摘要:
一. 先举例,再通过例子来介绍多态的好处。 截图中的例子是非常标准的继承体系的程序的体现。Animal类中的void eat()类是指:动物都具备吃的功能,具体吃什么,不知道。 接着创建对象,运行程序,这是没有问题的。 截图中是创建了一个猫的对象,并调用了吃的动作。如果这里面不止一个猫,有好多猫,猫 阅读全文