paint接口的例子

完成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);
    }
}


运行结果如下

img

根据接口的定义和实现方法,以及向上转型的实现方式编写代码即可,下面是一个实现,供参考:

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);
    }

}

img