首页 / JAVA / Java初学之中的接口
Java初学之中的接口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java初学之中的接口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3227字,纯文字阅读大概需要5分钟。
内容图文
![Java初学之中的接口](/upload/InfoBanner/zyjiaocheng/740/21da92b440204eb7963a9ca5fa9d653b.jpg)
什么是接口
如果一个抽象类中的所有方法都是抽象方法,那么这个抽象类就是接口(interface)。
接口的特点
接口中的抽象方法必须通过一个类来实现,格式为 实现类 implement 接口
其中实现类为实现了接口中抽象方法的类。
例如以下代码
public interface Father {
void eat();
void speak();
void run();
}
public class Son implements Father{
@Override
public void eat() {
System.out.println("吃东西");
}
@Override
public void speak() {
System.out.println("说话");
}
public void run() {
System.out.println("奔跑");
}
}
因为Son类实现了Father类之中的抽象方法,所以Son类是Father类的实现类。
1、如果一个类没有实现接口中的所有抽象方法,则该类必须为抽象类,例如下图中的Son1类。
public abstract class Son1 implements Father{
@Override
public void speak() {
// TODO Auto-generated method stub
}
@Override
public void run() {
// TODO Auto-generated method stub
}
}
2、接口中没有默认构造方法,而且也不能定义构造方法
接口中的方法都是抽象方法或者为static和default修饰的默认方法(后两者是在jdk1.8版本新增,在以前的版本里接口之中只允许存在抽象方法。)
在JDK8及其以后版本的JDK中,接口内可以定义静态方法(static修饰的方法)与默认方法(default关键字修饰的方法)。
接口中的静态方法实现类无法继承,默认方法实现类可以继承。
Whale无法调用IMammal接口中eat静态方法,说明Whale无法继承接口中静态方法
Whale可以调用IMammal接口中eat默认方法,说明Whale可以继承接口中默认方法。
3、接口一般以I开头(例如ISon,IFather,这是一个约定成俗的习惯)
4、接口中的变量为public static fianl常量
例如,在上面的Father类之中我们定义age属性——
int age=36;
在子类之中我们对age属性进行修改——给age赋值为40,显示报错。
这是因为在接口之中的变量已经默认被 public static fina这三个修饰词共同修饰,无法改动。
5、接口中的抽象方法默认public abstract
所以说我们定义抽象方法直接就可以用【void +方法名();】来声明
需要注意的事项
1、一个类可以实现一个或n个接口;如果一个类没有实现接口中所有的抽象方法,则该类必须为抽象类
2、接口重复抽象方法,实现类实现一个;接口中重复常量名,实现类必须指定到底调用哪个接口中的常量
我们再定义一个Mother接口
public interface Mother {
void eat();
int WEIGHT=80;
}
再在Father接口之中定义相同的变量WEIGHT
int WEIGHT=100;
这时我们再发现子类之中只重写了一个eat()方法,但是没有报错,因为两个接口之中的eat方法是相同的。
如果名称相同而返回类型不同的话,比如一个是int eat(),一个是void eat()则会报错,而且java语法中不允许这种情况存在!
调用常量的话则必须指明是哪个类之中的常量比如Father.WEIGHT或者Mother.WEIGHT,单独的WEIGHT会报错。
3、public protected friendly private 只有public 和默认的能修饰类和接口
也就是说——接口和类前面的修饰词在这四个里面只能存在public和默认的,(friendly就是默认的,直接就是class 类名{},如果前面加friendly是错误的!)
疑难辨析
Java类只有单继承 对
但是Java中接口可以多继承 对
Java中只存在单继承 错 java类之中只存在单继承,java的接口之中可以多继承。
子接口可以实现父接口中的某些抽象方法 错 一旦实现接口的抽象方法,它要么是一个实现类要么是一个抽象类,接口不能实现抽象方法!
含有抽象方法的抽象类必须至少有一个子类完全实现了其抽象方法 对
如果一个子类没有完全实现父类之中的抽象方法,那么它就是一个抽象类,而抽象类无法创建对象,里面的方法也就彻底失去了意义,可以这样说,在完全实现父类抽象方法的子类出现之前,父类以及其之前的所有子类都是抽象类,都是处于无法调用的状态!
含有抽象方法的抽象类一定至少会有一个非抽象类 对
对,至少有一个非抽象类实现了抽象类的全部抽象方法。
内容总结
以上是互联网集市为您收集整理的Java初学之中的接口全部内容,希望文章能够帮你解决Java初学之中的接口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。