22
33namespace LessonsSamples . Lesson7 . InheritanceComposition
44{
5- class Account
5+ public class Account
66 {
77 private decimal amount ;
8- private decimal interestRate ;
8+ private readonly decimal interestRate ;
9+
10+ public Account ( decimal interestRate )
11+ {
12+ this . interestRate = interestRate ;
13+ }
914
1015 protected decimal CalculateTaxesForMoth ( Month month )
1116 {
@@ -16,7 +21,7 @@ protected decimal CalculateTaxesForMoth(Month month)
1621 public decimal Amount
1722 {
1823 get { return amount ; }
19- protected set { amount = value ; }
24+ set { amount = value ; }
2025 }
2126
2227 public decimal MonthlyInterest ( )
@@ -37,6 +42,10 @@ public virtual void MonthlyRenewal()
3742
3843 class SavingsAccount : Account
3944 {
45+ public SavingsAccount ( decimal interestRate ) : base ( interestRate )
46+ {
47+ }
48+
4049 public decimal YearlyProfit ( )
4150 {
4251 // ...
@@ -60,25 +69,33 @@ private decimal CalculateYearlyDeposits()
6069
6170 class CheckingAccount : Account
6271 {
72+ public CheckingAccount ( decimal interestRate ) : base ( interestRate )
73+ {
74+ }
75+
6376 public decimal TransactionsCosts ( )
6477 {
6578 // ...
6679 Month lastMonth = new Month ( ) ;
6780 var lastMonthTaxes = CalculateTaxesForMoth ( lastMonth ) ;
68- decimal lastMonthCommissions = CalculateLastMonthCommision ( ) ;
81+ decimal lastMonthBankCharges = CalculateLastMonthBankCharges ( ) ;
6982 // ...
7083
71- return lastMonthCommissions + lastMonthTaxes ;
84+ return lastMonthBankCharges + lastMonthTaxes ;
7285 }
7386
74- private decimal CalculateLastMonthCommision ( )
87+ private decimal CalculateLastMonthBankCharges ( )
7588 {
7689 throw new NotImplementedException ( ) ;
7790 }
7891 }
7992
8093 class AutoLoanAccount : Account
8194 {
95+ public AutoLoanAccount ( decimal interestRate ) : base ( interestRate )
96+ {
97+ }
98+
8299 public override void MonthlyRenewal ( )
83100 {
84101 decimal interest = MonthlyInterest ( ) ;
0 commit comments