抽象类和接口

目录

抽象类与抽象方法

接口

接口的概念:

接口内的抽象方法:

接口使用步骤:

**接口的默认方法:default

**接口的静态方法:

接口变量:

继承父类并实现多个接口:

抽象类和接口的区别:


抽象类与抽象方法

抽象方法: 就是加上abstract关键字,然后去掉大括号,直接分号结束。

抽象类: 抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。

举个例子:

使用方法:

如何使用抽象类和抽象方法:

1.不能直接创建new抽象类对象。必须用一个子类来继承抽象父类,

2.子类必须覆盖重写抽象父类当中所有的抽象方法。

3.霍盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号。

4.创建子类对象进行使用。

2、3、代码举例:(子类覆盖重写抽象方法)

4、代码举例:(创建子类对象进行使用,调用抽象类子类的方法)

接口

接口的概念:

接口就是多个类的公共规范。

接口是一种引用数据类型,最重要的内容就是其中的:抽象方法

如果是Java 7,那么接口中可以包含的内容有:
1.常量
2.抽象方法
如果是Java 8,还可以额外包含有
3.默认方法
4.静态方法


接口内的抽象方法:

在任何版本的Java中,接口都能定义抽象方法。
格式:         public abstract 返回值类型 方法名称(参数列表);

注意事项:
1.接口当中的抽象方法,修饰符必须是两个固定的关键字:   public abstract
2.这两个关键字修饰符,可以选择性地省略。
3.方法的三要素,可以随意定义。

接口使用步骤:

接口不能直接使用,不能直接new,需要一个实现类来实现它,类似与 子类继承父类来实现父类的方法
1.接口不能直接使用,必须有一个“实现类”来“实现”该接口
格式:       public class 实现类名称 implements 接口名称{      }
2.接口的实现类必须覆盖重写(实现)接口中所有的抽象方法
实现:去掉abstract关键字,加上方法体大括号。
3.创建实现类的对象,进行使用。

注意:

如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类。

程序举例:

1、刚刚的定义接口:

2、接口的实现类,implements接口,覆盖重写接口所有的抽象方法

3、创建实现类的对象来使用:

**接口的默认方法:default

如果接口中新添加了一个抽象的方法,那么所有继承他的实现类都要进行对这个新方法的重写;

那么可以将这个新添加的抽象类改为接口的默认方法,其实现类会继承这个默认方法,但不用必须对其重写(如果需要的时候,可以手动选择性重写覆盖)

新类调用实现类

运行结果:

**接口的静态方法:

接口静态方法:

静态方法无需实现类重写

调用无需创建新的实现类对象,更不能用实现类对象来调用静态方法

正确调用:直接用接口名.静态方法(参数);

接口变量:

继承父类并实现多个接口:

1、

2、父类只能有一个,接口可以很多个

5、

implements的两个接口里面有相同的默认方法,但是方法体冲突

实现类对冲突默认方法进行覆盖重写

此时必须要覆盖重写,因为不覆盖重写会继承两个冲突的默认方法

接口与接口之间的多继承

3、

注意:

抽象类和接口的区别:

使用语义:接口更像是描述某种行为和能力,抽象类更像是描述事务本身的特质。

接口能实现的抽象类都能实现,抽象类单继承、多实现

抽象类是一个类,可以有类中可以有的东西。接口不可以

接口可以继承接口,并且可多继承接口,但类只能单一继承。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值