zoukankan      html  css  js  c++  java
  • java面向对象4

    1.interface

    • 接口定义一种规范,规定一个类必须做什么,但它不管如何具体去做;
    • [修饰符] interface 接口名 extends 父接口1,父接口2....
      没有构造方法,不能实例化;
      接口只能继承接口,不能继承类
      接口里没有普通方法,方法全是抽象的;
      接口里的方法默认修饰符是public abstract;
      接口里的字段全是全局常量,默认修饰符是public static final;
    • 接口里的成员包括(主要是前两个):
      全局常量
      公共的抽象方法
      内部类(包括内部类,内部接口,内部枚举类);

    2.使用接口

    • 格式:public class SubImpl extends Super implements IA,IB
    • 实现接口(支持多实现)
      [修饰符] class 类名 implements 接口1,接口2...
      接口的实现必须在 extends 之后;
      实现接口的方法必须是 public 类型
      接口不能创建实例,但是可以声明引用类型的变量。
      此时,引用类型的变量必须指向到其实现类对象。
      IStudent s = new String();//
      IStudent s = new StudentImpl();//

    3.抽象类和接口的区别

    4.内部类

    • 非静态内部类;静态内部类,局部内部类;
      1. 非静态内部类
      访问外部类的字段:外部类类名.this.字段
      访问内部类字段:this.字段
      访问内部类方法的局部变量:字段
      2. 静态内部类
      使用static修饰内部类,该内部类属于其外部类,而不属于外部类的实例;
      静态内部类可包括静态成员也可包括非静态成员。根据静态成员不能访问非静态成员的规定,所以静态内部类不能访问外部类实例成员,只能访问外部类的静态成员;
      3. 局部内部类
      局部内部类:定义在方法里的内部类;
      特点:不能在宿主类以外的地方使用,局部内部类也不能使用访问修饰符和static修饰;
      局部内部类只能访问方法中final修饰的局部变量:因为final修饰的变量相当于一个常量,其生命周期超出了方法运行的生命周期
      4. 匿名内部类
      适合只使用一次的类
      不能是抽象类,因为系统在创建匿名内部类的时候,会立即创建匿名内部类的对象。
      匿名内部类不能定义构造器,因为匿名内部类没有类名。

    • 匿名内部类适合于仅使用一次使用的类;匿名内部类必须继承一个父类或者实现一个接口,但最多只能一个父类或实现一个接口;

  • 相关阅读:
    HDU2363 最短路+贪心
    stl-----map去重,排序,计数
    STL------sort三种比较算子定义
    栈------表达式求值
    踩水坑系列一
    第一周 动态规划Dynamic Programming(一)
    模拟递归回溯贪心专题入门
    HDU1013,1163 ,2035九余数定理 快速幂取模
    HDU1005 找规律 or 循环点 or 矩阵快速幂
    入门基础常识
  • 原文地址:https://www.cnblogs.com/linbin7/p/14528152.html
Copyright © 2011-2022 走看看