多态的单词、理解与面试题

1.单词

        instanceof                        判断

2.什么是多态

        多态:面向对象的三大特性之一。一种事物的多中表达形式,相同的方法,根据业务需求的不同产生不同的结果。

3.使用多态(多态的三要素)

        要有继承关键的父类和子类

        子类重写父类的方法

        父类的引用指向子类的对象

3.向上转型和向下转型

        实施步骤(向上转型)

        1.创建父类

                父类提供子类的各种实例方法

        2.创建子类

                重写父类的方法

        3.创建实现类

                创建有参方法,参数为父类类型,分局父类类型做判断,调用子类重写或者继承的方法

                

         实施步骤(向下转型)

        1.创建父类

                父类提供子类的各种实例方法

        2.创建子类

                重写父类的方法

                写入子类的特有方法

        3.创建实现类

                创建有参方法,参数为父类类型,分局父类类型做判断,调用子类重写或者继承的方法

                强制转换父类对象为子类的类型

                调用子类的特有方法

向上转:把子类转换为父类为向上转,系统会自动转换数据类型。通过父类引用变量调用子类的  重写或者继承方法,但是无法调用子类的特有方法。

向下转:可以调用子类的特有方法,但必须强制转换父类变量为子类真实的类型,否则转换异常ClassCostException

instanceof        用来判断当前面的对象是否和后面的类属于同一个类

面试题(部分)

1.多态存在的三个条件
    继承关键的父类和子类
    子类重写父类的方法
    父类的引用指向子类的对象

2.多态成员的访问特点
    A:成员变量
        编译看左边,运行看左边。
    B:构造方法
        创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。
    C:成员方法
        编译看左边,运行看右边。
    D:静态方法
        编译看左边,运行看左边
编译看左边:指的是看父类中有没有该成员,如果有说明编译不报错,可以进行访问。 运行看左边:指的是编译不报错的前提下,去访问父类中的成员。    
由于成员方法存在方法重写,所以它运行看右边。

3.多态的使用场景
    继承和多态:子类可以重写父类的方法,当调用该方法时,程序会根据实际的对象类型来确定调用哪个版本的方法,实现了代码的灵活性和扩展性。
    接口多态:一个接口可以被多个类实现,这些类可以实现同一个接口方法,但方法体内容不同,当需要调用这个方法时,程序会根据对象的实际类型来选择正确的实现方法。
    多态的使用可以使代码更灵活、更具扩展性,提高了代码的复用性和可维护性。

4.多态的作用
    1.提高代码的复用性:通过多态实现的代码可以在不同的场景下使用,降低了代码重复编写的工作量,提高了代码的复用性。
    2.实现代码的灵活性和扩展性:通过子类对父类进行继承和重写的方式,实现了代码的灵活性和扩展性,当需要新增功能或修改功能时,只需要在子类中进行相应的修改即可,而不需要修改父类的代码。
    3.降低代码出错率:通过多态实现的代码可以提高代码的可维护性,并减少代码维护的成本,降低代码的出错率。
    4.实现接口规范和标准化:通过多态定义纯虚函数接口规范和标准化,同时要求其实现者基本遵守特定实现方式,提高代码可读性和团队开发效率
    多态作为一种重要的面向对象编程特性,可以为程序员提供更灵活、更扩展和更可维护的代码实现方式,因此,在面向对象编程的过程中,多态得到了广泛的应用

5.多态的弊端
    1.性能问题:在使用多态时需要使用虚函数表来实现动态绑定,这会导致一定的性能损失。特别是在大型系统中使用多态时,可能会影响程序的性能。

    2.可读性和可维护性问题:多态增加了代码的复杂度,增加了代码的阅读和理解的难度,特别是在继承和多层继承的情况下,子类的行为可能不容易理解,降低代码的可读性和可维护性。

    3.调试问题:多态可能会增加程序的调试难度,由于多态的动态绑定机制,程序进行调试时可能会遇到不同的版本的函数,增加了调试的难度。

    4.安全问题:多态可能会导致安全问题,如果子类重写了父类的方法,而子类的实现有缺陷或存在漏洞,可能会导致程序的安全问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值