java基础系列(九)

1.前言

        学习完面向对象的三大特性之后,我们发现三大对象中的继承关系由于受限于Java的单继承机制,我们的更多需求是无法满足的,这就有点类似于先天继承和后天学习的关系,现在我们就来讲讲java是怎么“实现”“后天学习”的吧。

2.抽象类      

         

         如图,如果我们想实现一个方法,但是又不希望在父类中实现,而是在子类中根据子类的需求具体的去实现这个方法。这时候我们把父类中的这种方法称为抽象方法。

         既然是抽象方法,肯定有一个专门修饰他的关键字,这个关键字就是abstract

         因此抽象方法的语法为:修饰符 abstract 返回值 函数名(参数);

         注意,抽象方法是没有方法体即没有{}的。同时当一个方法被声明为抽象方法则他所在的类也要声明为抽象类。

        

         前面,我们说过,抽象方法的意义在于让子类去具体实现功能,抽象方法只是提供一个统一的名字,抽象类的意义在于提供一类的抽象方法让子类去继承实现。由这点我们得到了一个重要的结论:

         一个类继承了抽象类,就必须实现抽象类所有的抽象方法。如图:       

         这是一个重要的规则,少实现一个方法都会报错!!!!

         同时抽象类是不能够被实例化的,会直接报错,如图:

        

         抽象类本质上也是一个类,所以他也可以有普通类所有成员变量:属性、方法、构造器、内部类以及代码块

        

         要点:

        1.abstract只能修饰方法或类

        2.如果一个类继承了抽象类就必须实现这个抽象类的所方法,除非他自己也声明为abstract类

        3.抽象方法不能使用private、final和static来修饰,因为这些修饰符都与重写是违背的。

3、接口

        接口的概念可以理解为行为上的抽象类,即抽象类侧重于类这个概念,而类包含了许许多多的成员,而接口更侧重与行为即方法上的内容。no picture say a jb,来看图:

        

         如图,该接口只能构建的是属性和方法,其余有关类的对象已经不能构造了,这就是侧重于行为的实现!!

        好,让我们来聊聊接口,前面我们说过,java是单继承机制,如果我们继承的类不包含某个名称的方法,而在其实例化的过程中,这个方法的名称是必须要的,那么此时就很为难了,是自己写一个这样的方法吗?如果所有人都这样做,那么一个工程中就会有五花八门的名称,影响了工程的开发。

         聪明的人们想出了接口的概念,把需要实现的方法名称都统一到了接口中,如果需要实现某个方法,只需实现这个接口即可。

        同样的,我们来看看接口的语法 : interface 接口名{属性、方法}

       接口中的方法是抽象方法,这里要强调的是,接口的方法只需要写返回值 + 方法名即可,前面的修饰符已经隐藏起来了:
        void hh();//等价于 public abstract void hh()

        而接口中的属性也只用写类型 + 名称,修饰符同样的被隐藏了

        int k = 0 其实等价于 public final static int k  = 0        

         那么类和接口又有怎么样的关系呢?即为实现的关系:

        

         类可以通过implements 这个 关键字 像extends一样去“继承”接口,但我们称这个过程为 实现,B类实现了K接口

        我们说过,接口中的方法是抽象方法,所以一个类如果实现了接口就要重写这个接口中的所有方法:

        当然,如果这个类是一个抽象类,他就不用实现接口的所有方法:
                 与继承不同的是,一个类可以实现多个接口

         接口与接口之间也存在继承关系,这种关系也是单继承关系:                

         和抽象类一样,接口不能够被实例化:                 调用接口中的属性的语法:接口名.属性名        

 4.结语

        之后我们将讲述,接口的多态特性以及内部类的概念,谢谢观看

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值