接口
接口中只能存在抽象方法, jvm默认会在方法前使用public abstract进行修饰, 刚学java推荐加上
interface QiChe{
public abstract void qiChe();
//熟练了可以不写public abstract(可省略)
}
`接口:表示一个类的 额外功能 的实现`
类和接口是实现关系 可以通过关键字implements实现接口
点击查看代码
interface QiChe{
public abstract void qiChe();
//熟练了可以不写public abstract(可省略)
}
abstract class Animal3{
public abstract void eat();
}
class Bear extends Animal3{
@Override
public void eat(){
System.out.println("🐻吃🥩");
}
}
class QiCheBear extends Animal3 implements QiChe{
@Override
public void eat() {
System.out.println("🐻吃🥩");
}
@Override
public void qiChe() {
System.out.println("训练后的🐻会骑车");
}
}
当一个具体的类实现一个接口的时候, 必须要实现接口中所有的抽象方法
意思就是要重写一下接口里的所有修饰函数,并且,在接口里所有函数都是抽象函数
点击查看代码
interface Inter{
void fun1();
void fun2();
}
class Demo5 implements Inter{
@Override
public void fun1() {
}
@Override
public void fun2() {
}
}
若一个抽象类实现一个接口的时候,可以选择性地实现接口中的抽象方法
比如说定义一个抽象类
abstract class Demo4 implements Inter{
//可以重写也可以不
}
` 一个类可以同时实现多个接口,使用逗号隔开`
类---接口
点击查看代码
interface Inter{
void fun1();
void fun2();
}
interface Inter2 {
void fun3();
}
class Demo5 implements Inter,Inter2{
@Override
public void fun1() {
}
@Override
public void fun2() {
}
@Override
public void fun3() {
}
}
接口和接口存在继承关系, 并且一个接口可以同时继承多个接口
实现 接口--接口
点击查看代码
interface Inter{
void fun1();
void fun2();
}
interface Inter2 {
void fun3();
}
interface Inter3 extends Inter,Inter2{
//fun1();
//fun2();
//fun3();
void fun4();
}
接口中只能定义常量, 默认修饰符为public static final
接口无法实例化, 接口中不能出现构造方法
点击查看代码
interface Inter1{
public static final int a = 10;//不可更改
// Inter1(){}
}
class Demo6 implements Inter1{
public void fun1(){
// a = 20;可以输出常量a,但是不能改变常量a的值
System.out.println(a);
}
}
public class InterfaceDemo3 {
public static void main(String[] args) {
Demo6 demo6 = new Demo6();
System.out.println(demo6.a);
System.out.println(Inter1.a);
demo6.fun1();
// Inter1 inter1 = new Inter1(); //不能实体化
Inter1 i1 = new Demo6(); // 接口多态
}
}

浙公网安备 33010602011771号