文章36 | 阅读 17956 | 点赞0
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
继续回到我们的猫狗案例,我们想想狗一般就是看门,猫一般就是作为宠物了。
但是,现在有很多的驯养员或者是驯兽师,可以训练出:猫钻火圈,狗跳高,狗做计算等。而这些额外的动作,并不是所有猫或者狗一开始就具备的,这应该属于经过特殊的培训训练出来的。
所以,这些额外的动作定义到动物类中就不合适,也不适合直接定义到猫或者狗中,因为只有部分猫狗具备这些功能。
所以,为了体现事物功能的扩展性,Java中就提供了接口来定义这些额外功能,并不给出具体实现,将来哪些猫狗需要被训练,只需要这部分猫狗把这些额外功能实现即可。
接口的特点:
public interface 接口名 {}
类实现接口 (用 implements 表示)
public class 类名 implements 接口名 {}
代码:
interface1
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 跳高接口 接口的特点
*
*/
public interface interface1 {
//抽象方法
public abstract void jump();
}
interface2
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 跳高接口的实现类-猫类 接口的特点
*
*/
public class interface2 implements interface1 {
@Override
public void jump() {
System.out.println("猫可以跳高了");
}
}
interface3
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 跳高接口的实现类-狗类 接口的特点
*
*/
public abstract class interface3 implements interface1 {
}
interface4
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 跳高接口的实现类-测试类 接口的特点
*
*/
public class interface4 {
public static void main(String[] args) {
//C:接口不能实例化
//interface1 i1 = new interface1();
//c1:参照多态的形式使用实现类来实例化。
interface1 jumpping = new interface2();
jumpping.jump();//猫可以跳高了
}
}
成员变量:
只能是常量
默认修饰符 public static final
构造方法:
没有,因为接口主要是扩展功能的,而没有具体存在
成员方法:
只能是抽象方法
默认修饰符 public abstract
代码:
interface5
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 接口类 接口的成员特点
*
*/
public interface interface5 {
public int num1 = 10;
public final int num2 = 20;
public static final int num3 = 30;
//接口没有构造器
//public interface5() {}
//接口不能有方法体
//public void show() {}
//接口的抽象方法
public abstract void method();
}
interface6
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 接口类的实现类 接口的成员特点
*
*/
public class interface6 implements interface5 {
public interface6() {
super();
}
@Override
public void method() {
}
}
interface7
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 接口类的测试类 接口的成员特点
*
*/
public class interface7 {
public static void main(String[] args) {
//按照多态的形式创建接口对象
interface6 i1 = new interface6();
//interface5.num1 = 30; //无法为最终变量num1分配值
//System.out.println(i1.num);
//i.num2 = 40;//无法为最终变量num2分配值
//System.out.println(i.num2);
System.out.println(interface6.num1);//10
System.out.println(interface6.num2);//20
}
}
类与类:
继承关系,只能单继承,但是可以多层继承
类与接口:
实现关系,可以单实现,也可以多实现。还可以在继承一个类的同时实现多个接口
接口与接口:
继承关系,可以单继承,也可以多继承
代码:
interface8
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 父类接口1 类与类_类与接口_接口与接口的关系
*
*/
public interface interface8 {
}
interface9
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 父类接口2 类与类_类与接口_接口与接口的关系
*
*/
public interface interface9 {
}
interface10
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 子类1 类与类_类与接口_接口与接口的关系
*
*/
public class interface10 extends Object implements interface8,interface9 {
}
interface11
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 子类2 类与类_类与接口_接口与接口的关系
*
*/
public class interface11 extends interface10 implements interface8,interface9 {
}
interface12
package Java_study;
/**
*
* @author 只是甲
* @date 2021-06-28
* @remark 测试类 类与类_类与接口_接口与接口的关系
*
*/
public class interface12 {
public static void main(String[] args) {
//实例化对象
interface11 sister = new interface11();
//c1:参照多态的形式使用实现类来实例化。
interface8 son = new interface10();
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/u010520724/article/details/119822333
内容来源于网络,如有侵权,请联系作者删除!