Topic 11: Revision of OO Concepts
Synopsis
- What is "abstraction¤"?
- What types of abstraction¤ are there?
- Why is abstraction¤ important in the real world?
- Why is abstraction¤ important in programming?
- Give examples of abstraction¤
mechanisms in C++.
- What is "encapsulation¤"?
- What are the benefits of encapsulation¤?
- What are the drawbacks of encapsulation¤?
- If computing is about making data available in useful
forms, why is data hiding important?
- How does encapsulation¤ relate to abstraction¤?
- What is "weak typing¤¤"?
- What is "strong typing¤¤"?
- Which kind of typing¤
does C++ have?
- What is "static typing¤¤"?
- What is "dynamic typing¤¤"?
- Which kind of typing¤
does C++ have?
- What is "inheritance"?
- Why is inheritance useful?
- In an OO programming language what kinds of things
can be inherited?
- What is the relationship between a class¤ and it
parent class¤¤?
- What is "multiple inheritance¤"?
- Why do we say that multiple inheritance¤ creates
"directed acyclic inheritance graphs"?
- How does inheritance relate to abstraction¤?
- What is "polymorphism¤"?
- How does polymorphism¤ relate to inheritance?
- How does polymorphism¤ relate to abstraction¤?
- What is "dynamic dispatch¤¤"?
- What is "genericity¤"?
- How does genericity¤ relate to abstraction¤?
- Why isn't it always sufficient just to provide a
generic¤ version of a particular function?
This material is part of the CSE2305 - Object-Oriented
Software Engineering course.
Copyright © Jon McCormack & Damian Conway, 1998–2005. All rights
reserved.