一:
定义书写功能接口(WriteAction)
a)抽象方法void write()
定义笔类(Pen),实现WriteAction接口,重写write()方法,方法内不需要编写内容;
a)属性: price价格(float类型), color颜色(String 类型);
b)提供空参,满参构造方法和set/get方法;
定义画笔类(Brush),继承 Pen
a)重写Pen中write()方法:输出格式: "现在使用的是价格为X的Y颜色的画笔",其中X为Brush的价格,Y为Brush的颜色;
b)提供空参,满参构造方法
定义铅笔类(Pencil),继承 Pen
a)重写Pen中write()方法: 输出格式: "现在使用的是价格为X的Y颜色的铅笔",其中X为Pencil的价格,Y为Pencil的颜色;
b)提供空参,满参构造方法
定义画家类(Painter)
a)属性: name姓名(String)
b)成员方法 : 绘画方法(void draw(Pen p)),首先输出"画家X正在绘画",然后调用p对象的write方法,其中X为Painter的姓名;
c)提供空参,满参构造方法,set/get方法
测试类Test
a)提供main方法
b)在main方法中
i1.创建Brush类对象b1,价格赋值为5.8,颜色赋值为红色;
i2.创建Pencil类对象p1,价格赋值为2.5,颜色赋值为黑色;
i3.创建Painter对象,姓名赋值为王流秋;调用两次Painter的draw方法,分别传入b1和p1,进行测试
二:
1.定义接口Teach,要求如下:
定义抽象方法 void teaching();
2.定义类Teacher,实现接口Teach,包含空参构造,满参构造和以下成员变量
姓名 name(String 类型)
学科 course(String类型)
实现抽象方法teaching(),在方法内输出"我是X师傅,我教Y学科"
PS: X表示姓名,Y表示学科
3.定义Student类,包含空参构造,满参构造和以下成员变量
姓名 name(String类型)
分数 score(int 类型)
师傅 Teacher teacher
定义一个无参无返回值的方法getMyResult(),实现要求如下:
1).在方法内输出"我是学生S,我的师傅是W,他教我Z学科"
PS:SS是学生的姓名,W是teacher的姓名,Z是teacher所教学科
2).判断学员分数是否大于等于60分,如果大于等于60分,则输出"继续加油哦"
如果小于60分,则输出"成绩太低了,师傅W让我回去罚写100遍"
PS:W是teacher的姓名
4.定义测试类(Test),在main方法中,创建教师对象、学生对象并赋值
调用teaching()、getMyResult()方法
三:
1.定义手机类Phone
行为: 打电话(call),发短信(sendMessage)
2.定义接口IPlay
行为: 玩游戏(play)
3.定义旧手机类(OldPhone)继承手机类
行为: 继承父类的行为
4.定义新手机类(NewPhone)继承手机类实现IPlay接口
行为: 继承父类的行为,重写玩游戏方法
5.定义测试类(Test),创建对象并调用方法,运行效果如下(使用多态):
旧手机打电话
旧手机发信息
新手机打电话
新手机发信息
新手机玩游戏
public interface WriteAction {
void write();
}
public class Pen implements WriteAction{
protected float price;
protected String color;
public Pen(){
}
public Pen(float price, String color) {
this.price = price;
this.color = color;
}
@Override
public void write() {
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
public class Brush extends Pen{
public Brush() {
}
public Brush(float price, String color){
super(price, color);
}
@Override
public void write() {
System.out.println("现在使用的是价格为"+ price + "的"+ color + "颜色的画笔");
}
}
public class Pencil extends Pen{
public Pencil() {
}
public Pencil(float price, String color) {
super(price, color);
}
@Override
public void write() {
System.out.println("现在使用的是价格为"+ price + "的"+ color + "颜色的铅笔");
}
}
public class Painter {
private String name;
public Painter(){
}
public Painter(String name) {
this.name = name;
}
public void draw(Pen p){
System.out.println("画家" + name + "正在绘画");
p.write();
}
}
public class Test {
public static void main(String[] args) {
Brush b1 = new Brush(5.8f, "红色");
Pencil p1 = new Pencil(2.5f, "黑色");
Painter painter = new Painter("王流秋");
painter.draw(b1);
painter.draw(p1);
}
}
运行结果:
画家王流秋正在绘画
现在使用的是价格为5.8的红色颜色的画笔
画家王流秋正在绘画
现在使用的是价格为2.5的黑色颜色的铅笔
第二个差不多,基本概念懂了就行,望采纳!