Java学习:对接口的了解

接口:跟类同级别,接口经常用来定义一些额外的功能和定义,接口中是用来定义一些拓展功能的,而且接口里面不能定义非抽象方法,只能定义抽象方法。
**interface关键字:**接口用interface关键字表示,可以和class类比,定义格式:interface 接口名{}
**implement关键字:**类实现接口用implement关键字表示,定义格式:implement 类名{}
接口的特点:
1.接口中的方法都是抽象方法,没有非抽象方法
2.方法的前面有默认修饰符
3.接口里面没有构造方法
4.接口的成员变量全是公共的静态常量,没有成员变量一说,因为前面存在默认修饰符
5.接口不能实例化,没有这么一说,我们可以按照按照多态的方式来实例化
接口和抽象类的区别:
接口没有构造方法,抽象类有构造方法
接口中只有构造方法,抽象类中即可以有抽象方法,也可以有非抽象方法
接口中只有公共的静态常量,抽象类中可以有成员变量和常量

我们建立接口这个概念的意义在于:对于一部分子类,他们可能没有经过继承父类,而拥有了一些自己后面才能实现的功能,例如同样是学生,但有的会Java语言,有的会C++。
我们可以通过下面这个程序来体会一下:

public abstract class Animal {
    String name;
    public abstract void sleep();
    public abstract void eat();
}
class test{
    public static void main(String[] args) {
        Animal an=new TomCat();
        an.name="汤姆";
        System.out.println(an.name);
        an.eat();
        an.sleep();
        Method me=new TomCat();
        me.show();
        System.out.println("--------------------");
        Animal an1=new BlackCat();
        an1.name="小黑";
        System.out.println(an1.name);
        an1.eat();
        an1.sleep();
    }
}
public class Cat extends Animal{
    @Override
    public void sleep() {
        System.out.println("睡觉");
    }

    @Override
    public void eat() {
        System.out.println("吃鱼");
    }
}
public class TomCat extends Cat implements Method{
    @Override
    public void show() {
        System.out.println("会表演");
    }
}

public class BlackCat extends Cat {
}

public interface Method {
    void show();
}

汤姆
吃鱼
睡觉
会表演
--------------------
小黑
吃鱼
睡觉

我们都说接口中不能有非抽象方法
在JDK1.8之后,提供了默认用default修饰的方法,可以给出功能的具体实现,子类可以继承下去用
例如:

class  A implements C{}
interface  C{
    public default void show(){
        System.out.println("show方法");
    }
}
class test1{
    public static void main(String[] args) {
        C c=new A();
        c.show();
    }
}
show方法

接口成员的特点:
成员变量:只能是静态常量,会有默认修饰符 public static final,但一般建议在编写程序时自己加上
构造方法:接口没有构造方法
成员方法:只能是抽象方法,会有默认修饰符public abstract,也是建议自己手动给出
类与类,类与接口,接口与接口的关系:
类与类 :单继承或者多层继承关系
类与接口:单实现或者多实现关系
接口和接口:单继承,也可以多继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值