• java 接口


    在讨论接口之前我买必须先看一看抽象类。

    1、抽象类:

     1 /**
     2  * 常规写法
     3  * 2016/5/5
     4 **/
     5 package cn.Java_7;
     6 class Fruit{
     7     public void eat(){
     8         System.out.println("eat fruit");
     9     }
    10 }
    11 class Apple extends Fruit{
    12     public void eat(){
    13         System.out.println("eat apple");
    14     }
    15 }
    16 class Orange extends Fruit{
    17     public void eat(){
    18         System.out.println("eat orange");
    19     }
    20 }
    21 class Banana extends Fruit{
    22     public void eat(){
    23         System.out.println("eat banana");
    24     }
    25 }
    26 public class AllFruit {
    27     public static void eatFruit(Apple apple){
    28         apple.eat();
    29     }
    30     public static void eatFruit(Orange orange){
    31         orange.eat();
    32     }
    33     public static void eatFruit(Banana banana){
    34         banana.eat();
    35     }
    36     
    37     public static void main(String[] args) {
    38         eatFruit(new Apple());
    39         eatFruit(new Orange());
    40         eatFruit(new Banana());
    41     }
    42 
    43 }

    抽象类:包含抽象方法的类就叫做抽象类,如果一个类中包含多个抽象方法,该类就必须限定为抽象的(abstract),在上一章多态当中,Fruit就可 以看做一个抽象类,我们不能对Fruit创建对象,因为水果是一类东西,不能成为一种具体的东西,我们吃水果只能说吃某种具体的水果,比如吃香蕉,吃苹 果,吃橘子,不能实例化吃水果,水果这种东西时不存在的,只能用具体的方法去覆盖吃水果这样一个动作。

       如果一个方法被abstract限定为抽象的,那么包含这个方法的类也必须被限定为抽象的,如果一个类继承的一个抽象类,那么这个类就必须全部覆盖父类中所有的抽象方法,否则这个类也便认为是一个抽象类。

    2、接口

    abstract关键字允许人们类中创建一个没有任何定义的方法,提供了接口的部分,但是没有提供相应的具体的实现。

    interface关键字产生一个完全抽象的类,它根本就没有提供任何具体的实现,它允许创建者确定方法名、参数列表,和返回类型,但是没有方法体。

     1 /**
     2  * 接口
     3  * 2016/5/5
     4  **/
     5 package cn.Java_7;
     6 interface Fruit{
     7     void eat(int a);
     8 }
     9 class Apple implements Fruit{
    10     public void eat(int a){
    11         System.out.println("小明吃了"+a+"个苹果");
    12     }
    13 }
    14 class Orang implements Fruit{
    15     public void eat(int a ){
    16         System.out.println("小芳吃了"+a+"个橘子");
    17     }
    18 }
    19 class Banana implements Fruit{
    20     public void eat (int a){
    21         System.out.println("小王吃了"+a+"个香蕉");
    22     }
    23 }
    24 public class AllFruit {
    25     public static void main(String[] args) {
    26         Fruit apple = new Apple();
    27         Fruit orange = new Orang();
    28         Fruit banana = new Banana();
    29         apple.eat(4);
    30         orange.eat(5);
    31         banana.eat(6);
    32 
    33     }
    34 
    35 }

     3、多重继承

     一个类只能继承一个类,而接口可以实现多继承

    1     public class A extends B implements C,D,E{}  

    4、接口中的域

    放在接口中的任何域都自动是static和final的,同时也是public的。

  • 相关阅读:
    STM32 Cube之旅-尝试新的开发方式
    FOC 电流采样为什么不准?你忽略了这个细节
    STM32 外部中断详解(原理+配置代码)
    STM32 TIM高级定时器死区时间的计算
    【STM32系列汇总】小白博主的STM32实战快速进阶之路(持续更新)
    FOC 算法基础之欧拉公式
    一阶RC高通滤波器详解(仿真+matlab+C语言实现)
    一阶RC低通滤波器详解(仿真+matlab+C语言实现)
    matlab 调用C程序进行simulink仿真
    matlab 提示 Error using mex No supported compiler or SDK was found 错误的解决办法
  • 原文地址:https://www.cnblogs.com/snail-lb/p/5463268.html
Copyright © 2020-2023  润新知