JavaSunMicrotyterJava的面向对象特征(3)ZUST Software Institute
1 Java的面向对象特征(3) ZUST Software Institute
接口(interface)JAVA接口是对ahstract类论进一步扩层An interfaceisa named collection of method接口方冲definitions(withoutimplementations)法),An interfacecanalsodeclareconstants协议class类名 implements 接口1,接口2... 接口定义[public]interface接口名成员变量:方法声明:人一个类符合某个或一组接口,利 用implements2
2 ◼ 接口是对abstract类的进一步扩展 ◼ 接口中的方法都是未实现的(类似于抽象方 法),目的是在实现接口的类之间建立一种 协议 ◼ 接口中的变量都是常量 ◼ 定义 ◼ 一个类符合某个或一组接口,利用implements 接口 (interface) An interface is a named collection of method definitions (without implementations). An interface can also declare constants. [public] interface 接口名 { 成员变量; 方法声明; } class 类名 implements 接口1, 接口2 . { . . . }
接口名修饰JAVA接口名修饰public:无任何访问限制无修饰:仅限于本包中接口变量默认都是“public static final'public interface Months ^int JANUARY=1, FEBRUARY=2, MARCH=3APRIL=4, MAY=5, JUNE=6, JULY=7,AUGUST=8,SEPTEMBER=9,OCTOBER=10NOVEMBER=11,DECEMBER=12;13
3 ◼ 接口名修饰 ◼ public: 无任何访问限制 ◼ 无修饰: 仅限于本包中 ◼ 接口变量默认都是“public static final” public interface Months { int JANUARY=1, FEBRUARY=2, MARCH=3, APRIL=4, MAY=5, JUNE=6, JULY=7, AUGUST=8, SEPTEMBER=9,OCTOBER=10, NOVEMBER=11,DECEMBER=12; } 接口名修饰
接口方法quizJAVAinterfaceFigureclass Circle implements Figuredouble x, y, r;doublehalf=0.5,pi=3.14159;Circle(double u, double , double m)voidparameterO;(x=u;y=v;r=m;}void area();publicvoidparameter(){ System.out.println(x +"" +y+" "+r); }class Triangle implements Figurepublic void area)double b, h; System.out.println(pi*r*r);)Triangle (double u, double v) }b = u; h = v,Triangle t = new Triangle(2, 3)7Circlec = new Circle(4, 5, 6)public voidparameterOFigure[] f = {t, c}];System.out.println(b + "" + h);7for (int i =0; i < f.length; i++) (public void area()f[i].parameter(); System.out.println(half*h*b);)f[i].area();人
4 接口方法 quiz ◼ 接口方法 ◼ 无修饰 ◼ 但在实现接口方法的类中,修饰符为public interface Figure { double half=0.5,pi=3.14159; void parameter(); void area(); } class Triangle implements Figure { double b, h; Triangle (double u, double v) { b = u; h = v; } public void parameter() { System.out.println(b + ""+ h); } public void area() { System.out.println(half*h*b); } } class Circle implements Figure { double x, y, r; Circle(double u, double v, double m) { x=u; y=v; r=m; } public void parameter() { System.out.println(x +“ " +y+“ " +r); } public void area() { System.out.println(pi*r*r); } } Triangle t = new Triangle(2, 3); Circle c = new Circle(4, 5, 6); Figure[] f = {t, c}; for (int i =0; i < f.length; i++) { f[i].parameter(); f[i].area(); }
classDDimplementsDA,DX接口的public int add(int x, int y) return x+y; )JAVApublic int sub(int x, int y) ( return x-y; 接public int mul(int x, int y) return x*y;public int div(int x, int y) (return x/y;)public int mod(int x, int y) return x%y; )人interfaceDCinterfaceDYintadd(intx,inty))int div(int x, int y))1interfaceDBextendsDCinterfaceDXextendsDYint sub(int x, int y);int mod(int x, int y)interfaceDA extendsDBint mul(int x, int y)}5
5 接口的继承 extends ◼ 接口的继承 extends ◼ 将多个接口合并为一个新的接口 interface DC { int add(int x, int y); } interface DB extends DC { int sub(int x, int y); } interface DA extends DB { int mul(int x, int y); } interface DY { int div(int x, int y); } interface DX extends DY { int mod(int x, int y); } class DD implements DA, DX { public int add(int x, int y) { return x+y; } public int sub(int x, int y) { return x-y; } public int mul(int x, int y) { return x*y; } public int div(int x, int y) { return x/y; } public int mod(int x, int y){ return x%y; } }