JAVA--接口+内部类

一.接口

一.接口了解


1.普通类:只有具体实现

2.抽象类:具体实现的规范(抽象方法)都有!!!

3.接口:只有规范!自己无法写方法,专业的约束,约束和实现分类

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

5.接口的本质时契约

6.OO的精髓,时对对象的抽象,最能体现这一点的就是接口

声明类的关键字是class,声明接口的关键字是interface


接口作用: 1.约束 2.定义一些方法,让不同的人实现 3.方法都是abstract final 4.常量:public static final

5.接口不能被实例化,接口没有构造方法 6.implements可以实现多个接口 7.必须要重写接口中的方法


接口定义:

package com.oop.demo09;
//interface 定义的关键字,接口都需要是西安类
public interface UserService {
  //接口中的所有定义其实都是抽象的public abstract
  //public abstract int age = 99;
  //在接口里可以不用写public abstract,都是抽象的
  //常量,没人这么玩,在接口定义常量
  public static final int age1 = 99;//没人这么玩
  int age = 99;
  void add(String name);
  void delete(String name);
  void update(String name);
  void query(String name);
}

接口实现:

package com.oop.demo09;
//类可以实现接口;通过implement 接口
//实现了接口的类,就需要重写接口中的方法
//多继承:利用接口实现多继承
public class UserServiceImpl implements UserService,TimeService {
  @Override
  public void add(String name) {}
  @Override
  public void delete(String name) {}
  @Override
  public void update(String name) {}
  @Override
  public void query(String name) {}
  @Override
  public void timer() {
  }
}

二.N种内部类

1.内部类就是在一个类的内部在定义一个类,比如A类定义了一个B类,那么B类相对于A类来说就是内部类,而A类相当于B类来说就是外部类了

  • 成员内部类

  • 静态内部类

  • 局部内部类

  • 匿名内部类

package com.oop.demo10;

public class Outer {

  public void method(){
      class Inner1{//局部内部类
          public void in(){}
      }
  }

  private int id=10;
  public void out(){
      System.out.println("这是外部类的方法");
  }
//下方加了public static ,成为静态公共类,就不能用
//下方getID方法获得id,因为static和类Outer同时执行
  class Inner{//内部类
      public void in(){
          System.out.println("这是内部类方法");
      }
      //可以获得外部类的私有属性
      public void getID(){
          System.out.println(id);
      }
  }
}
//一个java类可以有多个class类,但只能有一个public class
class A{//也是内部类
}

package com.oop.demo10;

public class Test {
  public static void main(String[] args) {
      //没有名字初始化类,不用将实例保存在变量中
      new Apple().eat();//匿名内部类Apple
      new UserService(){
          @Override
          public void hello() {
          }
      };
  }
}
class Apple{
  public void eat(){
      System.out.println("1");
  }
}
interface UserService{
  void hello();

}
 
posted @   学JAVA的旅行者  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示