After you have read and studied this chapter, you should be able to: Identify the basic components of Java programs; write simple Java programs; describe the difference between object declaration and creation; describe the process of creating and running Java programs; use the Date, SimpleDateFormat, String, and Scanner standard classes; develop Java programs, using the incremental development approach. | CSC241: Object Oriented Programming Lecture No 13 Previous Lecture Implicit conversion Explicit constructor Overloading Stream insertion > Inheritance Today’s Lecture Inheritance Protected members Constructor in derived class Function overriding Inheritance Base class Derive class A derived class represents a more specialized group of objects Inherit behaviors of base class and can customize the inherited behavior Direct base class is the base class from which a derived class explicitly inherits Indirect base class is inherited from two or more levels up in the class hierarchy single inheritance and multiple inheritance protected Members Access specifiers public: accessible within the body of base class and anywhere that the program private: accessible only within the body of base class and the friends of base class A base class's protected members can be accessed within the body of that base class, by members and friends of that base class, and by members and . | CSC241: Object Oriented Programming Lecture No 13 Previous Lecture Implicit conversion Explicit constructor Overloading Stream insertion > Inheritance Today’s Lecture Inheritance Protected members Constructor in derived class Function overriding Inheritance Base class Derive class A derived class represents a more specialized group of objects Inherit behaviors of base class and can customize the inherited behavior Direct base class is the base class from which a derived class explicitly inherits Indirect base class is inherited from two or more levels up in the class hierarchy single inheritance and multiple inheritance protected Members Access specifiers public: accessible within the body of base class and anywhere that the program private: accessible only within the body of base class and the friends of base class A base class's protected members can be accessed within the body of that base class, by members and friends of that base class, and by members and friends of any classes derived from that base class Generalization in UML Class Diagrams Generalization in UML Class Diagrams Cont. Cont. Inheritance – Example program class Counter { protected: unsigned int count; public: Counter() : count(0) { } int get_count() { return count; } Counter operator ++ () { return Counter(++count); } }; main() { CountDn c1; cout << “\nc1=” << (); ++c1; ++c1; ++c1; cout << “\nc1=” << (); --c1; --c1; cout << “\nc1=” << (); } class CountDn : public Counter { public: Counter operator -- () { return Counter(--count); } }; Go to program Base Class Unchanged Inheritance doesn’t work in reverse If other classes have been derived from base class, the base class remains unchanged Counter c2; The base class and its objects don’t know anything about any classes derived from the base class Objects of class Counter, such as c2, can’t use the operator--() function in CountDn Dangers of protected Access Specifier Suppose you’ve written