zoukankan      html  css  js  c++  java
  • JAVA_SE_笔记整理(面向对象三(多态,抽象类))

    面向对象三(多态,抽象类)

    1、多态:

    某一事物,在不同时刻表现出来的不同状态。

    举例:

    猫可以是猫的类型。猫 m = new 猫();

    同时猫也是动物的一种,也可以把猫成为动物

    动物 d = new 猫();

    水在不同时刻的状态

    多态的前体和体现

    继承关系

    有方法重写

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

    多态案例以及成员访问特点

    按照前提写一个多态案例

    成员访问特点:

    成员方法:

    编译看左边(语法),运行看右边(执行代码)

    成员变量:

    编译看左边(语法),运行看左边(执行父类变量)

    静态方法:

    编译看左边(语法),运行看左边(执行父类静态方法)

    多态好处与弊端:

    多态的好处:

    提高了程序的维护性(由继承保证)

    提高了程序的扩展性(由多态保证)

    多态的弊端:

    不能访问子类特有功能

    如果能够访问子类的特有功能呢?

    多态中的转型

    2、多态转型:

    向上转型:

    用子类对象赋值给父类变量,将子类交给了父类;父类引用执行子类对象;

    动物 d = new 猫();

    向下转型:

    用父类对象赋值给子类变量,将父类交给了子类;父类引用转为子类对象;

    猫 m = (猫)父类对象;

    子类转父类,默认转换

    父类转子类,强制类型转换,前提,这个父,本质就是子类,在可以转换。如果本质就是父类,编译不会报错,执行时报运行时异常。java.lang.ClassCastException

    3制作帮助文档

    我想要对数组进行操作

    如何制作一个说明书呢?

    A:写一个工具类

    B:对这个类加入文档注释

    怎么加呢?

    加些什么东西呢?

    @author

    @version V.10

    @param 这是要被遍历的数组

    @return 返回数组中的最大值

    D:格式

    javadoc -d 目录 ArrayTool.java

    目录:就可以写一个文件夹的路径

    制作帮助文档出错:

    找不到可以文档化的公共或受保护的类:告诉我们类的权限不够

    4、抽象类

    在java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类

    如果一个类中包含了一个或者多个抽象方法,类就必须定义为abstract(抽象)。“抽象方法”属于不完成的方法,只包含一个声明,没有方法主体。

    抽象类的特点:

    抽象类和抽象方法必须用abstract关键字修饰

    格式:

    abstract class 类名{

    }

    public abstract void eat();

    抽象类不一定有抽象方法,有抽象方法的类,一定是抽象类。

    抽象类不能实例化

    那么,抽象类如何实例?

    按照多态的方式,由具体的抽象类的子类实例。

    抽象类的子类

    要么事抽象类,要么实现抽象类中的所有抽象方法。

    抽象类的成员特点:

    成员变量:可以是变量,也可以是常量

    构造方法:有构造方法,但是不能实例化,那么构造方法的作用是什么?用于父类数据初始化,在子类new或者主动调用父类构造时。

    成员方法:可以有抽象方法,作用是限定子类必须完成某些动作。

    可以有非抽象方法,提供代码复用性。

    抽象类的几个小问题:

    一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?

    abstract不能和哪些关键字共存

    private 冲突

    final 冲突

    static 无意义

  • 相关阅读:
    sql随笔
    fastadmin 后台管理 时间戳字段使用
    查询优化随笔
    Hbuilder连接苹果手机
    composer安装Laravel
    php取上个月月初和月末时间戳
    fastadmin 后台view data-source关联报500错误问题
    京东宙斯平台使用方法(accesstoken,appkey,appsecret参数和SDK的获取)
    STM32的USB速度,终于确定了传输极限,为以后的产品设计提供了数据。
    上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。
  • 原文地址:https://www.cnblogs.com/songliuzhan/p/12624132.html
Copyright © 2011-2022 走看看