栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java接口

接口 1. 接口的本质

普通类:只有具体实现
抽象类:具体实现和规范都有
接口:只有规范

  • 接口就是比"抽象类"还抽象的"抽象类",可以更加规范的对子类进行约束,全面地专业地实现了:规范和具体实现的分离.
  • 抽象类提供某些具体实现,接口不提供任何具体实现,接口中所有方法都是抽象方法.接口是完全面向规范的,规定了一批具有的公共方法规范.
  • 从接口的实现者角度看,接口定义了可以向外部提供的服务.
  • 接口是两个模块之间通信的标准,通信的规范.
2、接口和抽象类区别:
  1. 抽象类也是类,除了可以写抽象方法以及不能直接new对象之外,其他和普通类咩有区别.接口是另一种类型,和类有本质特征。
  2. 声明类用关键字class,声明接口用关键字是interface。
  3. 抽象类是用来被继承的,Java中的类的继承是单继承。类A继承了抽象类B,那么类A的对象就属于B类型了,可以使用多态,一个父类引用,可以指向这个父类的任意子类对象 注:继承的关键字是extends。
  4. 接口是用来被类实现的,Java中的接口可以被多实现,类A实现接口B、C、D、E…,那么A的对象就属于B、C、D、E等类型了,可以使用多态一个接口的引用,可以指向这个接口的任意实现类对象 注:实现的关键字是implements
3、接口中的方法都是抽象方法

接口中可以不写任何方法,但是如果写了,必须是抽象方法

public interface Action
	public abstract void run();
	//接口中方法默认都是抽象类,因此public abstract 可以默认不写。
	void test();
	public void go();
4、接口中的变量都是静态变量

用public static final修饰
接口中可以不写任何属性,但是如果写了,必须是静态变变量,使用public static final 修饰。

注:声明的同时必须赋值(因为接口中不能编写静态代码块)

public interface Action {
	public static final String NAME="Tom";
	//默认就是public static修饰
	int AGE=20;
}
main:
System.out.println(Action.NAME);
System.out.println(Action.AGE);

5. 一个类可以实现多个接口
public class Student impletments A,B,C,D{
//Student 需要实现接口A B C D 中所有抽象方法
//否则Student 类就要声明为抽象类,因为有抽象方法没有实现
}
main:
A s1=new Student ();
B s2=new Student();
C s3=new Student();
D s4=new Student();

注:s1只能调用接口A中声明的方法以及Object中的方法;s2只能调用接口B中声明的方法以及Object中的方法。。。

6、一个接口可以继承多个父接口
public interface A{
    public void testA();
}

public interface B{
    public void testB();
}

//接口C把接口A B中的方法都继承过来了
public interface C extends A,B{
    public void testC();
}

//Student相当于实现了A B C三个接口,需要实现所有的抽象方法
//Student的对象也就同时属于A类型 B类型 C类型
public class Student implements C{
    public viod testA(){}
    public viod testB(){}
    public viod testC(){}
}

main:

C o = new Student();
System.out.println(o instanceof A);//true
System.out.println(o instanceof B);//true
System.out.println(o instanceof C);//true
System.out.println(o instanceof Student);//true
System.out.println(o instanceof Object);//true
System.out.println(o instanceof Teacher);//false

//编译报错
System.out.println(o instanceof String);

如果o是一个接口类型声明的变量,那么只要X不是final修饰的类,该代码就能够通过编译,至于结果是不是true,就看变量o指的是不是对象的实际类型,是不是X的子类或者实现类了。

7. 接口作用

接口最主要的作用是达到统一访问,就是在创建对象的时候用接口创建。
【接口名】【对项名】=new【实现接口的类】
这样你想用那个类的对象就可以new那个对象了,不需要改原来的代码。

——学习内容来自https://oddfar.github.io/notes/java/se/object/#%E5%86%85%E9%83%A8%E7%B1%BB

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434874.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号