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#没有这样的东西,注意到以上内部接口,内部类,都是静态的