zoukankan      html  css  js  c++  java
  • Java学习 · 初识 面向对象深入二

    面向对象深入

    1. 1.            抽象类

    a)     声明

                      i.           抽象方法和抽象类必须用abstract来修饰

                    ii.           没有方法体,不需要实现

    b)    定义

                      i.           抽象方法的类只能定义抽象类

                    ii.           抽象类中不一定全都是抽象方法

    c)     使用

                      i.           抽象类中可以包含属性、方法、抽象方法

                    ii.           不能实例化

                  iii.           只能用来继承

                  iv.           子类必须覆盖所有抽象方法,否则子类还是抽象类

     

    1. 2.            接口 interface

    a)     定义

                      i.           接口就是比抽象类还抽象的抽象类

                    ii.           接口就是规范,定义的是一组规则

                  iii.           实现了规范和实现的分离

    b)    接口的相关规则

                      i.           所有方法都是抽象的

                    ii.           变量默认为public static final

    c)     使用

                      i.           可以定义一个接口,用extends继承了一个接口

                    ii.           可以定义一个类,用implements实现一个接口

                  iii.           可以定义一个抽象类,用implements实现接口的部分方法

    d)    定义格式

                      i.           [访问修饰符] interface 接口名 extends 父接口

    1. 常量定义:public static final
    2. 方法定义: public abstract

    e)     如何实现接口

                      i.          

    1. 3.            内部类

    a)     定义

                      i.           将一个类定义置入另一个类定义当中

    b)    特点

                      i.           可以访问外部类的成员(包括private成员),反之不行

                    ii.           可声明为,public default protected private

                  iii.           编译后生成两个类,OuterClass.class OuterClass$InnerClass.class

    c)     分类

                      i.           匿名内部类 Anonymous

    1. 可以实现一个接口,或继承一个父类
    2. 只能实现一接口
    3. 适合创建一次性使用的类,不能重复使用,在GUI编程中常见
    4. 4.            Lambda表达式

    a)     作用

                      i.           传递一个反复使用的代码块(在使用函数式接口时使用

    b)    语法

                      i.           (参数,参数)->{代码块}

    c)     函数式接口

                      i.           定义:只有一个抽象方法的接口

    d)    三种引用

                      i.           方法引用

    1. Object::instanceMethod
    2. Class::staticMethod
    3. Class::instanceMethod

                    ii.           构造器引用

    1. 类型::new

    e)     变量作用域

                      i.           Lambad表达式总是捕获最终对象

  • 相关阅读:
    《Qt学习系列笔记》--章节索引
    Qt-绘制图表
    Qt-可视化数据库操作
    Qt-数据库操作SQLite
    古人说的最好,临渊羡鱼,不如退而结网, 这是个勇气问题.
    阿里云产品之数据中台架构
    使用HSDB查看类变量的内存布局(5)
    文件流
    类文件介绍
    类的连接之重写(1)
  • 原文地址:https://www.cnblogs.com/secoding/p/9497762.html
Copyright © 2011-2022 走看看