java - day008 - 接口,内部类

接口

作用: 结构设计工具,用来解耦合,需要有子类,隔离具体实现

接口是一个极端的抽象类

 

用 interface 代替 class

用 implements 代替 extends 

 

// 接口中所有东西都是公开

// 所有方法都是抽象方法

// 所以方法定义可以省略/* public abstract */

 

// final 不可变

// static 在方法区只保存一份内存, 节省内存

// 常量使用 final 和 static 定义,字母大写,单词之间下划线链接

/*public static final */ //接口定义常量可以省略

 

接口中可以定义

1. 公开的抽象方法

2. 公开的常量

3. 公开的内部类, 内部接口

 

一个类可以实现多个接口

class A implements X,Y,Z{

}

class A extends B implements X,Y,Z{

}

 

接口和接口之间继承,可以多继承

interface A extends X,Y,Z{

}

 

 

内部类:

嵌套在类中,方法中,局部代码中的类

分为:

非静态内部类

     class A {

          class Inner {

          }

     }

     非静态内部类不能独立创建对象,

     它必须依赖于外部实例才能存在

    A a = new A();

    Inner i = a.new Inner();

    

   一般用来封装局部的算法和逻辑,

 

 

静态内部类

  class A {

      static class Inner{

      }

   }

  A.Inner i = new Inner();

 

  考虑它与外部类关系紧密,可以嵌套定义在一起,

 

 

局部内部类

   class A{

         Weapon f(){

              class Inner implements Weapon{

              }

              Inner i = new Inner();

              return i;

         }

    }

 

   Weapon w = a.f();

   局部内部类,只能在布局使用,可以转成父类型,向外传递

 

   

  

匿名内部类

 Weapon w = new Weapon(){};

 大括号:  匿名类

 new:   新建匿名类的对象

 Weapon: 父类型

 小括号: super();  或者 super (.....);

 

 

  

 

 

 

posted @ 2019-05-12 09:44  Dingzhijie  阅读(151)  评论(0编辑  收藏  举报