• 抽象类和抽象方法接口和多态


    抽象类与普通类的区别:
    1、抽象类中可以写抽象方法,普通类不可以;
    2、抽象类不能直接创建对象,普通类可以;
    3、抽象类中可以没有抽象方法,但是仍然不能创建对象。

    抽象类的常见问题
    1、抽象类一定是父类,因为是不断向上抽取而来。
    2、实际开发中,建议先写抽象的父类,在根据具体的子类编写功能。
    3、有抽象方法的类一定是抽象类,在抽象类中,可以没有抽象方法。
    没有抽象方法的类是一种特殊的设计模式;(适配器模式)
    4、如果抽象A定义了一个抽象的a方法,如果B类继承A的时候,没有重写a方法,B类也必须抽象。


    (接口和多态)
    接口中只能写两种成员:一种是常量(需要使用final关键字修饰),另一种是抽象方法
    接口不能直接创建对象
    接口可以继承接口,而且可以多继承
    接口与类之间的关系,只能是类实现接口
    一个类在继承另一个类的时候,可以实现多个接口
    当子类实现多个接口时,出现相同的方法规范时,只需要重写一次即可。
    该类必须重写接口中所有的抽象方法;如果不能全部重写,那么这个类只能是抽象类。


    接口与抽象类的区别:
    相同点:
    1、都不能创建对象
    2、都可以写抽象方法
    3、都必须有子类才可以创建子类的对象

    多态:
    表现形式:父类或接口类型 变量名 = new 子类();
    多态必须有继承或实现,才可以实现多态的形式
    多态形式下方法执行的规则
    当父类有某个方法的时候(不论是否为抽象方法),多态形式下的子类对象,都可以调用该方法
    ,如果父类中没有这个方法(子类中有),那么多态形式下的子类对象是 不能直接调用子类独有的方法。
    总结:编译看左边,运行看右边;
    多态形式下的成员变量:编译和运行都看左边

    多态的类型转换

    类型的自动提升
    小转大,java自动转型
    大的数据类型 变量名 = 小的数据值

    强制类型转换
    大的数据类型 变量名 = (大的数据类型)被转换的对象

    instanceof关键字用来判断多态形式下的对象的原始类型
    格式:多态形式的对象 instanceof 数据类型,返回值类型为boolean类型
    类型强制下降

  • 相关阅读:
    python 小爬虫
    动态规划,网易秋招
    leetcode 3
    leetcode 27 水
    leetcode 21 list merge
    leetcode 15 3sum & leetcode 18 4sum
    leetcode 389 map iterator 的使用
    [转]使用flask实现mock server
    python __str__repr__ 区别
    Robot Framework 源码阅读 day2 TestSuitBuilder
  • 原文地址:https://www.cnblogs.com/dubin382460/p/7482322.html
Copyright © 2020-2023  润新知