举个面积的例子:在java中,
定义一个
接口,声明计算长方形面积和周长的抽象方法,再用一个类去实现这个接口,再编写一个测试类去使用这个接口。首先,接口必须单独存放,如果我们用eclipse编程的话,它们提示:The public type **** must be defined in its own file,意思是必须要定义在其自己的文件中,所以要为接口文件单独存放起来,举例,我们的接口滑扰要实现获到矩形的长,宽,面积,周长,所以定义以下的接口。public interface calrect {\x0d\x0apublic abstract int calarea()\x0d\x0apublic abstract int calgirth()\x0d\x0apublic abstract int getx()\x0d\x0apublic abstract int gety()\x0d\x0a}注意,定义接口就像定义类一样,接口的访问控制符只能用public,用public定义的接口可以被所有的类和包引用,而缺省的则只能罩纳被同一个包中的其他类和接口引用,这符合JAVA中访问控制符的一般要求,关于接口再引用其他接口则是后话。以上接口文件名为calrect.java.另外需要指出的是接口中不能给方法给出方法体。接下来,需要定义一个类来实现接口,因为不知道JAVA的内置矩形类是什么名,所以为了安全,将该类定义为RRect,这可以认为是一物让没种安全策略。关于implements,可以参考其他资料。该类引用了接口calrect,所以必须对calrect中的方法一一实现。//定义矩形类 应用接口class RRect implements calrect{private int x\x0d\x0aprivate int ypublic RRect (){\x0d\x0a x=3y=4\x0d\x0a}\x0d\x0apublic int calarea(){\x0d\x0a return x*y\x0d\x0a}\x0d\x0apublic int calgirth(){\x0d\x0a return x*2+y*2\x0d\x0a}\x0d\x0apublic int getx(){\x0d\x0a return x\x0d\x0a}\x0d\x0apublic int gety(){\x0d\x0a return y\x0d\x0a}\x0d\x0a}//接下来,定义一个测试类,所谓测试类,我理解为定义一个类,在其定义类RRect的对象,并验证其中的方法,看看是不是可以正常使用//定义Class1类\x0d\x0apublic class Class1{\x0d\x0aRRect rect\x0d\x0apublic static void main(String []args){\x0d\x0a RRect rect=new RRect()\x0d\x0a System.out.println("
矩阵的长"+ rect.getx())\x0d\x0a System.out.println("矩阵的宽"+ rect.calarea())\x0d\x0a System.out.println("矩阵的面积"+ rect.calarea())\x0d\x0a System.out.println("矩形的周长 "+rect.calgirth())\x0d\x0a}\x0d\x0a\x0d\x0a}运行结果:矩阵的长3\x0d\x0a矩阵的宽12\x0d\x0a矩阵的面积12\x0d\x0a矩形的周长 14注:接口单存放,接口实现类和测试类可以存放在一个文件中abstract class Animal {
private double weight
abstract void say()
abstract void eat()
public Animal() {
this.weight = 0
}
public Animal(double weight) {
this.weight = weight
}
public double getWeight() {
return weight
}
public void setWeight(double weight) {
this.weight = weight
}
}
interface Flyable {
void flySpeed()
}
class Glede extends Animal implements Flyable {
public void flySpeed() {
睁岁 System.out.println("10m/s")
}
@Override
void say() {
闭逗 System.out.println("啊啊啊啊")
}
@Override
void eat() {
轿早卖 System.out.println("老鼠")
}
}
class Pigeon extends Animal implements Flyable {
public void flySpeed() {
System.out.println("5m/s")
}
@Override
void say() {
System.out.println("咕咕咕咕")
}
@Override
void eat() {
System.out.println("虫子")
}
}
public class Test {
public static void main(String[] args) {
Glede glede = new Glede()
glede.flySpeed()
glede.say()
glede.eat()
Pigeon pigeon = new Pigeon()
pigeon.flySpeed()
pigeon.say()
pigeon.eat()
}
}
Display.java 接口中祥代码如下:
public interface Display {
public void dis()
}
接口的实现类DisplayImpl.java 代码如下:
public class DisplayImpl implements Display {
@Override
public void dis() {
// TODO Auto-generated method stub
System.out.println("输卖陵搏出方法")
}
public 汪数static void main(String[] args) {
new DisplayImpl().dis()
}
}
评论列表(0条)