接口,类与接口的关系,接口与抽象类的区别

接口

1 接口的概念

与之前学习过的抽象类一样,接口( Interface )在Java中也是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,接口更像是一种规则和一套标准.

2 接口格式

3 接口的特点: 

通过interface关键字来定义接口
通过implements让子类来实现接口
接口中的方法全部都是抽象方法,静态常量(JAVA8)
可以把接口理解成一个特殊的抽象类(但接口不是类!!!)
类描述的是一类事物的属性和方法,接口则是包含实现类要实现的方法
接口突破了java单继承的局限性
接口和类之间可以多实现,接口与接口之间可以多继承
接口是对外暴露的规则,是一套开发规范
接口提高了程序的功能拓展,降低了耦合性

4.1 练习-1:创建接口---接口里有普通方法

package cn.tedu.inter;
//本接口用于创建接口测试
//1.通过interface关键字定义接口
public interface Inter {
    //2.接口中可以有普通方法吗?不可以
    //public  void eat(){}Interface abstract methods cannot have 方法体
    /***2.接口中可以有抽象方法吗?可以,接口中都是抽象方法,只定义规则,不实现*/
    public abstract  void  eat();
    public abstract  void  play();

}

4.2 练习-2:创建接口实现类—— 实现类的两种方案

package cn.tedu.inter;
//本类用于Inter接口的实现类,是class
/**1.接口实现类需要通过implements关键字与接口建立实现关系*/
/**2.1方案一:实现类与接口建立实现关系以后
 * 可以选择不实现接口中的抽象方法,把自己变成一个抽象类*/
//abstract public class InterImpl implements Inter
 /***2.2方案二:实现,实现类与接口建立实现关系后
  * 还可以选择实现接口中所有的抽象方法,变成一个普通实现类,
  * 继承叫重写,接口叫实现一回事*/
 public class InterImpl implements Inter{
    @Override   //注解,用作标记,标记实现了父接口的抽象方法
    public void eat() {
        System.out.println("吃青椒炒肉");

    }

    @Override    //注解,用作标记,标记实现了父接口的抽象方法
    public void play() {
        System.out.println("玩代码");

    }

 4.3 练习-3:创建接口测试类---接口可以创建对象吗

ackage cn.tedu.inter;
//本类用于测试接口实现类的测试类
public class TestInter {
    public static void main(String[] args) {
        //测试创建接口对象
        /**接口可以创建对象吗?不可以!!!*/
        //Inter  i=new Inter() Inter' is abstract; cannot be instantiated
        //2.1创建多态对象进行测试
        Inter i=new InterImpl();
        //2.2通过多态对象调用方法
        i.eat();
        i.play();
        //3.1创建实现类对象进行测试 ——-常用
        InterImpl  i2=new InterImpl();
        //3.2通过实现类对象调用方法
        i2.eat();
        i2.play();
    }
}

  

5 接口的用法

5.1 练习: 接口之构造方法---接口有构造方法吗

package cn.tedu.inter2;
//本类用于进一步测试接口的使用
/**1.当一个类没有明确指定父类的情况下,默认的顶级父类是Object
 * 2.问题:接口实现类实现的接口中没有中没有构造方法
 * 那接口实现类为什么能创建对象?子类构造中的首行不是调用 super();
 * 答案:父级接口并不是类,接口中没有构造函数,实际实现类调用的是super()指的是继承父类的无参构造
 * 如果没有明确指定父类,那就调用的是顶级父类
 *
 * */
public cla
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值