当前位置: 首页> 娱乐> 明星 > Java学习:第九章接口

Java学习:第九章接口

时间:2025/7/12 16:02:28来源:https://blog.csdn.net/m0_72675651/article/details/140046782 浏览次数:0次

    抽象方法和抽象类

★    接口

    策略设计模式和适配器设计模式

抽象类和抽象方法:

1、   抽象方法

     使用关键字 abstract修饰的方法称为抽象方法, 仅有方法声明没有方法体。

2、   抽象类

包含抽象方法的类称为抽象类,必须也用abstract 关键字声明。abstract 关键字声明的类一定是抽象类(无论类内是否有抽象函数)

2.     抽象类的性质

Ⅰ   不能创建抽象类的对象,否则编译器报错。但是可以创建抽象类的引用。

    

Ⅱ   如果继承一个抽象类,没有为基类中的所有抽象方法提供方法定义,那么这个导出类也是抽象类,必须也用abstract 关键字声明。

3.   抽象类的用途

★  抽象类为它的所有子类创建了一个通用接口,不同的子类使用不同的方式实现此接口

抽象类和抽象方法的典例: 

enum Note {CarmeloAnthony, KobeBryant
}abstract class Instrument { // 抽象类public abstract void play(Note n); // 抽象方法public String what() {return "Instrument";}public abstract void adjust();
} //  抽象类中可以包含非抽象方法,抽象函数不能是static和privateclass Wind extends Instrument {public void play(Note n) {System.out.println("Wind.play( ) " + n);}public String what() {System.out.println("here!");return "Wind";}public void adjust() {}
}//子类实现抽象方法与覆盖类似,可以使用协变返回类型,访问权限可以相等或放松。public class Main {public static void main(String[] args) {Instrument fun = new Wind();fun.what();fun.play(Note.CarmeloAnthony);}
}

 

  接口

1、   接口(Interface的概念

     Java中,用interface关键字来创建一个完全抽象的类

     区别:抽象类与接口

2、   接口的创建

     接口是一种特殊的抽象类,但在创建时使用interface关键字,接口内的方法不用加abstract关键字.

3、默认访问权限控制:

  抽象类:缺省(包访问权限控制)

  接口:public

接口的性质:

1只有抽象方法的声明,不能有具体的方法实现(不能有初始化语句块)

2interface中所有方法的访问权限都是public(缺省)否则编译器报错

3)接口也可以包含域,这些域隐式为publicstaticfinal必须进行指定初始化。

接口得的实现:

interface MyInterface {// 常量public static final double PI = 3.14159;// 抽象方法public double calculateArea(double radius);// 默认方法public default void printMessage(String message) {System.out.println("Message: " + message);}// 静态方法public static int add(int a, int b) {return a + b;}
}public class exp1 implements MyInterface {@Overridepublic double calculateArea(double radius) {return PI * radius * radius;}@Overridepublic void printMessage(String message) {System.out.println("Overridden message: " + message);}public static void main(String[] args) {exp1 obj = new exp1();System.out.println("Area: " + obj.calculateArea(5.0));obj.printMessage("Hello, world!");System.out.println("Sum: " + MyInterface.add(10, 20));}
}

 接口中的域:

     接口中的域隐式是staticfinal,可以被非常量表达式初始化。

     Java  SE5以后的版本提供了功能更加

         强大和灵活的enum关键字,因此通过

         接口来群组常量已经没有什么意义

嵌套接口:

1、  接口嵌套在类中

     class  A

         {   interface  B

             {  void  f();}     

              .....

2、  接口嵌套在其它接口中

     interface  E

         {   interface  G

             {  void  f();}  

              .....

关键字:Java学习:第九章接口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: