Java面向对象简单实例
一,定义接口Credit,包含如下内容:
抽象方法:void prepaid():
package com.qf.day18.homework;
/**
* @author deng
* @date 2023/2/18 16:32
*/
public interface Credit {
//定义接口Credit,包含如下内容:
//抽象方法:void prepaid()
void prepaid();
}
二,定义抽象类Card,要求如下:
包含空参、满参构造和以下成员变量
所属银行name( String 型)
生成所有成员变量set/get方法
定义抽象方法:void cardholder(Person1 p)
package com.qf.day18.homework;
/**
* @author deng
* @date 2023/2/18 16:33
*/
public abstract class Card extends Person1{
// 定义抽象类Card,要求如下:
// 包含空参、满参构造和以下成员变量
// 所属银行name( String 型)
// 生成所有成员变量set/get方法
// 定义抽象方法:void cardholder(Person1 p)
private String name;
public Card(String name) {
this.name = name;
}
public Card() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void cardholder(Person1 p);
}
三,定义类ICBC,要求如下:
继承抽象类 Card,实现接口 Credit
构造方法包括:空参、满参构造方法(String)
重写抽象方法:
void prepaid(),要求:输出”信用卡可以先消费”
void cardholder(Person p),要求:输出打印"XXX使用的是YYY信用卡"
PS:XXX是Person类中的name属性值,YYY是Card类中的name属性值
package com.qf.day18.homework;
/**
* @author deng
* @date 2023/2/18 16:37
*/
public class ICBC extends Card implements Credit{
// 定义类ICBC,要求如下:
// 继承抽象类 Card,实现接口 Credit
// 构造方法包括:空参、满参构造方法(String)
// 重写抽象方法:
// void prepaid(),要求:输出”信用卡可以先消费”
// void cardholder(Person p),要求:输出打印"XXX使用的是YYY信用卡"
// PS:XXX是Person类中的name属性值,YYY是Card类中的name属性值
@Override
public void prepaid() {
System.out.println("信用卡可以先消费");
}
@Override
public void cardholder(Person1 p) {
System.out.println(p.getName()+"使用的是"+getName()+"信用卡");
}
public ICBC(String name) {
super(name);
}
public ICBC() {
}
}
四,定义类Person1
包含空参、满参构造和以下成员变量
姓名name( String 型)
生成所有成员变量set/get方法
package com.qf.day18.homework;
/**
* @author deng
* @date 2023/2/18 16:35
*/
public class Person1 {
// 定义类Person1
// 包含空参、满参构造和以下成员变量
// 姓名name( String 型)
// 生成所有成员变量set/get方法
private String name;
public Person1() {
}
public Person1(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
五,定义测试类Test,在main方法实现以下功能:
创建并初始化一个ICBC对象bank和一个Person对象p
调用bank的prepaid()和 cardholder(Person p)方法
package com.qf.day18.homework;
/**
* @author deng
* @date 2023/2/18 16:42
*/
public class TestICBC {
public static void main(String[] args) {
//定义测试类Test,在main方法实现以下功能:
//创建并初始化一个ICBC对象bank和一个Person对象p
//调用bank的prepaid()和 cardholder(Person p)方法
Card bank = new ICBC();
Person1 p = new Person1();
p.setName("张三");
ICBC icbc = (ICBC) bank;
icbc.setName("中国建设银行");
icbc.prepaid();
bank.cardholder(p);
}
}
\qfjava\out\production\qfjava" com.qf.day18.homework.TestICBC
信用卡可以先消费
张三使用的是中国建设银行信用卡
Process finished with exit code 0