Java的接口和C#一样,是interface关键字,但可以包含的成员不同
C# 的接口只能包含方法签名,Java的接口确可以包含属性(必须是常量),还可以在接口中定义内部接口
- packagetest;
- publicinterfaceA{
- publicvoidgetA()throwsAException;
- publicstaticinterfaceB{
- publicvoidgetB();
- }
- publicclassAExceptionextendsjava.lang.Exception{
- publicAException(Stringmsg){
- super(msg);
- }
- }
- }
Java中类继承或者叫实现一个接口关键字为implements 而C# 的继承始终都是:
- packagetest;
- publicclassImplAimplementsA{
- @Override
- publicvoidgetA()throwsA.AException{
- System.out.println("ImplementsAinterface");
- A.AExceptione=newA.AException("ThisisAException");
- throwe;
- }
- publicstaticclassImplBimplementsA.B{
- @Override
- publicvoidgetB(){
- System.out.println("ImplementsBinterface");
- }
- }
- publicstaticvoidmain(String[]arg){
- ImplAtestA=newImplA();
- try{
- testA.getA();
- }catch(A.AExceptione){
- e.printStackTrace();
- }
- A.BtestB=newImplA.ImplB();
- testB.getB();
- }
- }
publicstaticclassImplBimplementsA.B
内部类实现接口的内部接口,感觉是不是挺怪的?反正C#没有这样的东西,注意到以上内部接口,内部类,都是静态的
本文深入探讨了Java和C#接口的关键区别,包括成员类型、内部接口与静态内部类的使用,并通过示例代码展示具体实现方式。
918

被折叠的 条评论
为什么被折叠?



