2022-07-25 第六小组 张宁杰 面向对象:多态

目录

多态
多态的形成有三个条件
第一种多态形式:(向上转型)
第二种多态形式:(向下转型)
instanceof关键字
匿名对象

知识点

多态:

编译看左边,运行看右边
披着羊皮的狼

Dog dog = new Dog();
Cat cat = new Cat();
Animal animal1 = dog;
Animal animal2 = cat;

多态的形成有三个条件:

1.有继承
2.有重写
3.有父类对象指向子类引用
说到底就是把类之间的is关系落实

第一种多态形式:(向上转型)

父类 父类对象 = new 子类();

 Object obj = new Person();

第二种多态形式:(向下转型)

发生向下转型的前提:要先发生向上转型,才能通过强转再转成子类类型

instanceof关键字:

判断某一个对象是否是某一个类的实例,返回值是boolean类型

 if(animal instanceof Cat){
            Cat cat = (Cat) animal;
            cat.catchMouse();
        }else if(animal instanceof Dog) {
            Dog dog = (Dog) animal;
            dog.look();
        }else {
            System.out.println("我不养...");
        }

多重if容易有逻辑缺陷

匿名对象

通常配合构造器使用
语法: new 类名();
功能:和正常的有名字的对象的功能是相同的。依然具备了调用属性,方法的功能
使用场景:多数是在传参,实参,多数情况下配合构造器使用
好处:节约栈的资源

new Dog().setName("黑黑");
new Dog().setAge(1);

数组是不是类:
1.站在JVM的角度看,是类,在JVM解析数组时,会生成一个数组的解析数组。
2.站在编译角度看,不是类,因为没有类名,没有结构。

链表:是一个数据结构

分为单向链表,循环链表,线性表。
它是一个含有n>=0个起点的有序数列,有且只有上一个节点,有且只有一个下一个节点
单向链表:在维护一个节点的自身的同时,还要维护下一个节点指向
双向链表:在维护一个结点的自身的值得同时,还要维护它的上一个和下一个值的指向

学习感受

今天的学习难度主要集中在链表的构造上,多态较为简单,但也需要练习将知识点吃透。理解链表的原理,并将其熟练运用才是今天学习的重点。

posted @ 2022-07-25 20:22  贵妃就是贵妃  阅读(20)  评论(0编辑  收藏  举报