This chapter is all about advanced Java OOP topics like encapsulation, inheritance, and polymorphism. Together they constitute three of the four main theoretical principles of object-oriented
programming
. The fourth principle, abstraction, is beyond the scope of this text, so we won’t be covering it here. Let’s set the stage for the discussion by defining each of these
features
of the Java, object-oriented, programming language.