完成Paint接口的例子,分别定义Paint接口,两个方法startPaint,endPaint。两个子类:Painter(油漆工)和Artist(艺术家),重写两个方法,方法中输出对应的两句话。定义计算机类Wall,有一个paintWall(Paint p)方法,方法中调用p的startPaint和endPaint方法。。在主方法中实例化Wall类,调用paintWall方法,分别传递Painter和Artist的对象,通过向上转型,完成功能。
代码如下,希望对您有所帮助,望采纳
//定义paint接口
public interface Paint {
//定义接口方法
void startPaint();
void endPaint();
}
//油漆工类
public class Painter implements Paint{
//实现接口方法
@Override
public void startPaint() {
System.out.println("油漆工开始油漆");
}
@Override
public void endPaint() {
System.out.println("油漆工油漆完成");
}
}
//画家类
public class Artist implements Paint{
//重写画家方法
@Override
public void startPaint() {
System.out.println("画家开始绘画");
}
@Override
public void endPaint() {
System.out.println("画家绘画结束");
}
}
//计算机类
public class Wall {
public void paintWall(Paint paint) {
//调用接口paint的方法
paint.startPaint();
paint.endPaint();
}
}
//主测试类
public class Test {
public static void main(String[] args) {
//定义wall对象
Wall wall = new Wall();
//定义painter油漆工对象
Paint painter = new Painter();
//定义artist画家对象
Paint artist = new Artist();
//调用paintWall方法,传入painter对象
wall.paintWall(painter);
//调用paintWall方法,传入artist对象
wall.paintWall(artist);
}
}
运行结果如下
根据接口的定义和实现方法,以及向上转型的实现方式编写代码即可,下面是一个实现,供参考:
Paint接口类:
// 定义Paint接口
public interface Paint {
void startPaint();
void endPaint();
}
Painter类:
// Painter使用implements关键字来实现Paint接口
public class Painter implements Paint {
// 实现Paint接口的startPaint()方法
@Override
public void startPaint() {
// TODO Auto-generated method stub
System.out.println("The Painter start paint!");
}
// 实现Paint接口的endPaint()方法
@Override
public void endPaint() {
// TODO Auto-generated method stub
System.out.println("The Painter end paint!");
}
}
Artist类
// Artist使用implements关键字来实现Paint接口
public class Artist implements Paint{
// 实现Paint接口的startPaint()方法
@Override
public void startPaint() {
// TODO Auto-generated method stub
System.out.println("The Artist start paint!");
}
// 实现Paint接口的endPaint()方法
@Override
public void endPaint() {
// TODO Auto-generated method stub
System.out.println("The Artist end paint!");
}
}
Wall类
public class Wall {
// 可以向上转型的方式调用Paint接口的子类实现类
public void printWall(Paint p) {
p.startPaint();
p.endPaint();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Artist ar = new Artist();
Painter pa = new Painter();
Wall wa = new Wall();
wa.printWall(ar);
wa.printWall(pa);
}
}