Java开发——11.接口

接口(interface):

接口是一种公共的规范标准,只要符合规范标准,大家都可以通用。接口和抽象类相似,但是接口比抽象类的规定更加规范和严格。Java中的接口更多的体现在对行为的抽象!
抽象类的描述在 面向对象的特点10 中已经完成讲解,有问题的可以参考,以下链接!

抽象类:

抽象方法所在的类一定是抽象类,但是抽象类中可以有非抽象方法。

接口:

接口中的方法均为抽象方法。

接口定义格式:

接口用关键字interface修饰

public interface 接口名 {}

接口的使用:

接口是不能创建对象,必须有实现类才能使用,类实现接口用implements表示

public class 类名 implements 接口名 {}

注意: 接口的实现类必须重写接口中的所有的抽象方法。

接口成员的特点:

1.成员变量
只能是常量,默认修饰符:public static final,final修饰所以接口中定义的变量都是常量
2.成员方法
只能是抽象方法,默认修饰符:public abstract
3.构造方法
没有构造方法,因为接口主要是扩展功能的,而没有具体存在,接口中只有抽象方法。

案例展示:

public interface Inter {//接口中定义的变量只能是常量
    //默认修饰符:public static final,可以省略修饰符(public static final)
    public int num1 = 10;
    public final  int num2 = 20;
    public static final int num3 = 30;
    int num4 = 40;//默认是被 public static final 修饰//接口没有构造方法
    // public Inter() {}//接口中不能有方法主体
    // public void show() {}//默认修饰符:public abstract 
    public abstract void method1();public void method2();void show();}

实现类:

/**
 *   子类是具体类,要实现接口中所有的抽象方法
 */
public class InterImpl extends Object implements  Inter {
    public InterImpl(){
        super();//super实现的是object这个超级父类
    }
 
    @Override
    public void method1() {
        System.out.println("实现类中的method1");}@Override
    public void method2() {
        System.out.println("实现类中的method2");}@Override
    public void show() {
        System.out.println("实现类中的show");
    }
}

测试类:

public class Test {    
public static void main(String[] args) {        
//接口不能实例化        
// Inter i = new Inter();        
//通过多态的方法实        
Inter i = new InterImpl();        
//访问成员变量        
System.out.println(i.num1);        
//接口的常量是不能修改的        
// i.num1 = 100;        
i.method1();        
i.method2();        
i.show();    
}
}

接口和抽象类的区别:

A:成员区别
抽象类:
	成员变量:变量 或者 常量;
	构造方法:有;
	抽象类不能实例化;
	成员方法:可以有抽象方法,也可以有非抽象方法。
接口:
	成员变量:只可以静态常量  可以省略 static final;
	构造方法:无;
	接口不能实例化;
	成员方法:只有抽象方法。      可以省略abstract!
B:关系区别
类与类
    继承,单继承, 多层继承(爷->父->子->孙)
类与接口
	实现,单实现,多实现
接口与接口
    继承,单继承,多继承都可以
C:设计理念区别
抽象类【共性功能】。
接口【扩展功能】。

多实现的格式:(多继承也是一样的写法)

class 类名 [extends 父类名] implements 接口名1,接口名2,接口名3... {    
    // 重写接口中抽象方法【必须】
    // 重写接口中默认方法【不重名时可选】
} 

​总结:

接口中只有常量和抽象方法;
接口是没有静态代码块和构造方法的;
一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
单继承多实现:

public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {
   // 覆盖重写所有抽象方法
}

如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。​

欢迎关注微信公众号:小红的成长日记,一起学Java!
欢迎关注微信公众号:小红的成长日记,一起学Java!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的Handler机制是Android开发中非常重要的一个概念,它是用来处理线程之间的通信的。在Java中,也可以使用Handler机制来实现线程之间的通信,这里简要介绍一下Java中的Handler机制。 Java中的Handler机制是基于线程池的,它可以将任务提交到线程池中执行,并且可以将执行结果返回给调用者。在Java中,可以使用Executor框架来实现线程池,同时可以使用Future接口来获取执行结果。 在Java中,Handler机制可以通过以下几个步骤来实现: 1. 创建一个线程池,可以使用Executor框架来实现。 2. 创建一个Callable接口的实现类,该实现类用来执行任务并返回结果。 3. 将Callable实现类提交到线程池中执行,可以使用submit()方法来实现。 4. 获取执行结果,可以使用Future接口来获取。 下面是一个简单的示例代码: ```java import java.util.concurrent.*; public class HandleJava { public static void main(String[] args) throws Exception { // 创建线程池 ExecutorService executor = Executors.newFixedThreadPool(1); // 创建Callable实现类 Callable<String> callable = new Callable<String>() { @Override public String call() throws Exception { // 执行任务 Thread.sleep(1000); return "Hello, world!"; } }; // 提交任务到线程池 Future<String> future = executor.submit(callable); // 获取执行结果 String result = future.get(); System.out.println(result); // 关闭线程池 executor.shutdown(); } } ``` 这个示例代码中,创建了一个线程池,然后创建了一个Callable实现类,将其提交到线程池中执行,并且使用Future接口来获取执行结果。最后关闭线程池。 需要注意的是,线程池一定要关闭,否则程序会一直运行下去,不会退出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值