abstract修饰符和接口

         一. abstract修饰符
            可用来修饰类和成员方法。
            . 用abstract修饰的类表示抽象类,抽象类不能实例化,即不允许创建抽象类本身的实例。没有用abstract修饰的类称为具体类,具体类可以被实例化。
            . 用abstract修饰的方法表示抽象方法,抽象方法没有方法体。抽象方法用来描述系统具有什么功能,但不提供具体的实现。
              没有abstract修饰的方法称为具体方法,具体方法具有方法体。
            语法规则;
            1) 抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类;
            2) 没有抽象构造方法,也没有抽象静态方法;
            3) 抽象类中可以有非抽象的构造方法;
            4) 抽象类及抽象方法不能被final修饰符修饰。
         二. 接口
            接口使用的目的:解决多重继承问题;例如Fish类继承Animal类,表明Fish是一种动物,但鱼同样也是一种食物,如何表示这种关系呢? 由于Java语言不支持一个类有多个直接的父类,因此无法用继承关系来描述鱼既是一种食物,又是一种动物,为了解决这一问题,Java语言引入接口类型,简称接口。一个类只能有一个直接的父类,但是可以实现多个接口。 采用这种方式,Java语言对多继承提供了有力的支持。
            1. 接口是抽象类的另外一种形式
               抽象类抽象到极致就是接口,抽象类可存在有方法体的方法,接口中的方法全部为抽象方法;
            2. 接口中的所有方法均是抽象方法, 默认都是public、abstract类型的;
               public interface A {
                      void method1();                //合法,默认为public、abstract类型
                      public abstract void method2();//合法,显示声明为public、abstract类型
            3. 接口中的成员变量默认都是public, static, final类型,必须被显式初始化;
               public interface A {
                      int CONST = 1;                 //合法,CONST默认为public, static, final类型
                      public static final int OPAQUE = 1;  //合法,显示声明为public static final 类型
               }
            4. 接口中只能包含public, static, final类型成员变量和public、abstract类型的成员方法;
            5. 接口中没有构造方法,不能被实例化。
            6. 一个类只能继承一个直接的父类,但能实现多个接口。
            抽象类和接口比较:
            1. 相同点:
               a. 都不能被实例化;
               b. 都能包含抽象方法;
            2. 不同点;
               a. 抽象类中可以为部分方法提供默认的实现,从而避免子类中重复实现它们,提高代码的可重用性,而接口中只能包含抽象方法;

               b. 一个类只能继承一个直接的父类,这个父类有可能是抽象类;但一个类可以实现多个接口,这是接口的优势所在。



以上就是抽象类和接口的介绍

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suwu150

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值