JavaSe之接口

接口的特点:
1、接口用关键字interface表示
格式:interface 接口名 {}
2、接口里面写抽象方法
3、类实现接口用implements表示
格式:class 类名 implements 接口名 {}
4、接口不能实例化
那么,接口如何实例化呢?
接口多态
按照多态的方式,由具体的子类实例化,也是多态的一种
5、接口的子类
要么是抽象类,可以不重写接口中的方法,也可也选择重写
要么是具体的子类,但是必须重写接口中的所有抽象方法

    总结:
        1、开发中最常见的是接口多态
        2、抽象多态
        3、具体的类中的多态
//定义一个动物钻火圈接口
interface AnimalTrain{
    public abstract void ZuanHuoQuan();
}

abstract class Dog4 implements AnimalTrain{
    @Override
    public void ZuanHuoQuan() {
        System.out.println("狗钻火圈");
    }
}

class Cat4 implements AnimalTrain{

    @Override
    public void ZuanHuoQuan() {
        System.out.println("猫钻火圈");
    }
}

public class InterfaceDemo1 {
    public static void main(String[] args) {
//        AnimalTrain animalTrain = new AnimalTrain();

        AnimalTrain at = new Cat4();
        at.ZuanHuoQuan();

    }
}

接口中成员的特点:
成员变量:只能是常量,而且是静态的
通过反编译观察发现,它对成员变量是有默认修饰符:public static final
如果我们不写,默认加上
推荐:手动全部给出
构造方法:接口里面没有构造方法
成员方法:只能是抽象方法,没有方法体
通过反编译观察发现,它对方法是有默认修饰符:public abstract void
如果我们不写,默认加上
推荐:手动全部给出

    注意:
        虽然接口里面没有构造方法,但是我们说过,所有的类都继承一个超类:Object
        Class Object是类Object结构的根。 每个class都有Object作为超类
        所有的对象都实现了该类里面的方法
interface Inter{
    int num = 20;
    final int num2 = 30;

//    public Inter(){}

    public void show();
    void show2();

}

class InterImpl implements Inter{

    public InterImpl(){
        super();
    }

    public void show(){
//        num = 300;
        System.out.println(num);
    }

    @Override
    public void show2() {

    }
}


public class InterfaceDemo2 {
    public static void main(String[] args) {
        InterImpl inter = new InterImpl();
        System.out.println(inter.toString());
    }
}

类与类之间的关系
继承关系,只能单继承,不能一次性继承多个,但是可以多层继承
类与接口之间的关系
实现关系,类可以单个实现接口,也可以一次性实现多个接口
可以在继承一个类的时候,实现多个接口
每个类默认继承自Object类
接口与接口之间的关系
没有实现关系,只有继承关系
接口可以单继承一个接口,接口也可以一次性继承多个接口

interface Inter1{

}

interface Inter3{

}

interface Inter2 extends Inter1,Inter3{

}




class Father{

}

class Son extends Father implements Inter1,Inter2{

}

public class InterfaceDemo3 {
    public static void main(String[] args) {

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值