接口和抽象类的区别

*接口和抽象类的概念?

    接口(interface),是抽象方法的集合,一个类通过实现接口来实现接口中的抽象方法。

     切记:接口不是类,接口无法被实例化!类描述对象的属性和方法,接口则包含类需要实现的方法,除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。在Java中,接口类型可以用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

 

    抽象类,在面向对象的概念中,所有的对象都是通过类来描述的,但反过来,并不是所有的类都是用来描述对象的,如果一个类中没有包含足够的信息来描述一个具体的对象,这样的类就是抽象类。

    抽象类除了不能被实例化之外,类的其他功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。一般在设计阶段就要决定要不要设计抽象类,因为抽象类被继承了才能得到利用。

 

 *接口和抽象类的定义?

接口的定义:

                

上面图一中方法不需要添加public abstract修饰符,默认的只能是public abstract修饰,所以定义方法要想图二那样。接口中尽量不要定义变量,如果必须定义变量的话记住变量的名字一定要大写,如图三。下面总结下:

①使用interface修饰  ②接口中的所有方法都是公开的,并且是抽象方法 ③接口中可以定义成员变量,但都是公共静态常量

④接口中不能存在实现方法 ⑤实现了接口就必须实现接口中的全部方法 ⑥接口不是一个类,不能被实例化

 

 抽象类的定义:

public abstract class AbstractAnimal {
    String name;
    int age;
    public abstract void show();
    public void doIt() {
        System.out.println("执行!");
    }
}

一般抽象类的命名以Abstract开头,便于辨别是一个抽象类,抽象类中可以有实现的方法的,另外在抽象类中也可以定义成员变量,抽象类说到底还是一个类,和接口是有区别的对于抽象类总结以下特点:

①使用abstract修饰作为抽象类和抽象方法   ②子类必须实现抽象类中的抽象方法

③抽象类中的方法不能是私有的,否则子类无法实现   ④抽象类中允许有实现的方法

 

*抽象类和接口的区别?

1.抽象类需要一个类去继承,接口则是需要去实现。两者都要全部实现其中的抽象方法;

2.接口中不能有已经实现的方法,而抽象类则可以;

3.接口可以多实现,但是抽象类只能单继承(所以接口的灵活性和可扩展性更好,用的更多);

4.抽象类里面可以没有抽象方法,包含抽象方法的类一定是抽象类

 

总结:接口更像是定义一种功能或者操作,实现了这个接口就可以干某些事,而抽象类更像是对一些事物的高级概括。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值