2020-04-10

Super关键字
可以访问父类中定义的属性
可以调用父类中定义的成员方法
可以在子类构造器中调用父类构造器

.子类所有的构造器默认都访问父类中空参数的构造器
.子类一定会调用父类构造器(默认过程调用无参)

//如果没有显示定义构造方法,Java编译阶段提供一个默认构造方法
//如果定义了自己的构造器,Java使用自己的构造器
//父类所有的构造器:子类必须实现它,子类默认当中一定使用到了父类的构造器 子类一定有一个和父类相同的构造器
//子类没有构造器,提供一个无参空构造器(子类用到了父类构造器)

This与supee的区别
this代表本身
super代表父类
方法的重写
成员变量的隐藏:在子类的创建中,如果出现了与其父类相同的成员变量,则父类中的成员变量被子类所重写
成员变量的覆盖:相同名,同参数及返回类型

重写:1重写方法必须和重写方法具有相同的方法名称参数列表
2重写方法返回类型不能大于被重写的方法的返回类型:继承
3重写方法使用的访问权限不能小于被重写的访问权限

方法的多态
运行时的多态:超类的对象可以引用子类的实例(上转型)
该对象仍然只能够调用超类定义的方法和变量
编译时的多态:当实例对象引用实例方法运行时多态
1继承2方法重写3父类对象引用子类实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是构造程序的代码: ```python class AccountBook: def __init__(self): self.records = [] self.income = 0 self.expense = 0 self.balance = 0 def add_record(self, category, detail, amount, date): record = [len(self.records)+1, category, detail, amount, date] self.records.append(record) if category == '收入': self.income += amount else: self.expense += amount self.balance = self.income - self.expense def print_records(self): for record in self.records: print(record) print('总收入:', self.income) print('总支出:', self.expense) print('结余:', self.balance) book = AccountBook() book.add_record('收入', '生活费', 3000, '2020-04-01') book.add_record('支出', '午餐', 12.5, '2020-04-30') book.add_record('支出', '买书', 25, '2020-04-30') book.add_record('支出', '晚餐', 16, '2020-04-30') book.add_record('收入', '生活费', 3500, '2020-05-01') book.add_record('支出', '峨嵋山旅游', 500, '2020-05-01') book.print_records() ``` 运行程序后,输出结果如下: ``` [1, '收入', '生活费', 3000, '2020-04-01'] [2, '支出', '午餐', 12.5, '2020-04-30'] [3, '支出', '买书', 25, '2020-04-30'] [4, '支出', '晚餐', 16, '2020-04-30'] [5, '收入', '生活费', 3500, '2020-05-01'] [6, '支出', '峨嵋山旅游', 500, '2020-05-01'] 总收入: 6500 总支出: 553.5 结余: 5946.5 ``` 上述程序中,我们定义了一个 `AccountBook` 类,其中包含了一个 `records` 属性,用于存储记帐记录;以及 `income`、`expense` 和 `balance` 属性,分别用于记录总收入、总支出和结余。 在 `AccountBook` 类中,我们还定义了一个 `add_record` 方法,用于添加新的记帐记录。这个方法接受四个参数:`category`(类别)、`detail`(明细)、`amount`(金额)和 `date`(日期)。在添加新的记帐记录时,我们先将其存储到 `records` 属性中,然后根据类别更新总收入和总支出,最后计算结余。 最后,我们还定义了一个 `print_records` 方法,用于将所有的记帐记录打印出来,并输出总收入、总支出和结余。 在程序的最后,我们创建一个 `AccountBook` 对象,并添加了一些测试数据。最后调用 `print_records` 方法,将所有的记帐记录打印出来,并输出总收入、总支出和结余。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值