• java学习第八天


    第九次课

    目标

    1、  多态

    2、  抽象类

    3、  接口

    4、  内部类(了解)

    一、多态polymorphism

    追求”高内聚低耦合”通过三大特性: 封装继承及多态来实现。

    多态:多种形态,”出去买水果?” ,多态发生在运行期的行为,编译看父类型,运行找子对象。

    1、条件

    1)、继承  2)、重写(没有重写,延续方法)   3)、父类的引用=子类的对象

    2、新增方法

    发生多态时,对新增方法不可见。

    强制类型转换成功,可以使用新增方法

    3、两种表现形式

    1)、形参使用父类型

    2)、返回类型使用父类型

    4、类型转换

    1)、自动|向上(upcasting)|多态

    父类  =子类对象

    2)、强制|向下(downcasting)

    子类  = (子类)父类指向的对象

    注意: 正确的发生多态才能够转换成功,否则错误

    instanceof à关系运算符,检查引用所指向的对象(右边)的类型,是否本类型|父类型,必须在继承链上。

    常见的错误: 转换错误java.lang.ClassCastException

    二、抽象类

    由abstract修饰的类,称为抽象类,此抽象类不能实例化,待子类实例(多态),通常用作工具类、模板(不变+可变),称为部分规范。

    1、定义格式

    public abstract class Xxx{

    }

    2、特点

    1)、abstract 修饰  ,不能使用final 修饰,因为必须存在子类

    2)、不能实例化,待子类实例化;存在构造器

    3)、可能存在抽象方法,抽象类可以没有抽象方法

    3、抽象方法

    由abstract修饰的没有方法体({})的方法,注意; 结束。

    1)、抽象类可以没有抽象方法

    2)、抽象方法一定存在于抽象类中

    三、接口

    接口 interface ,完全规范、标准 ,like 如: USB接口,具有连接电脑、传输数据等功能。接口只有全局常量和公共的抽象方法,看成特殊的抽象类。

    1、格式

    [public] /*abstract*/ interface 接口名{

             //全局常量

            /* public static final*/  类型常量名=赋值;

            //公共的抽象方法

            public abstract 返回值类型|void 方法名([形参列表]);

    }

    2、类与接口

    Implements 多实现接口

    3、接口与接口:

    多继承 (了解)

    4、空接口

    给jvm 通行证

    1)、java.lang.Cloneable

    2)、java.io.Serializable

    四、内部类(了解)

    内部类: 类变成了类中类、方法中的类

    1、类中类

    实例化:

    2、方法中类

    3、匿名内部类(重点)

    五、eclipse 调试

    目的: 理解程序的执行流程、排除错误。

  • 相关阅读:
    局部组件
    flex布局
    Websocket
    关于Javascript夜里再来分析下
    go build、go mod等命令
    websocket
    FileSystemWatcher使用
    DataGridView双缓冲
    C#读INI文件
    c 通过 COM接口调用 Excel.Application 问题终于解决
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5322322.html
Copyright © 2020-2023  润新知