Java继承,抽象,接口,重写应用案例

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值