Presentation is loading. Please wait.

Presentation is loading. Please wait.

ATS Application Programming: Java Programming

Similar presentations


Presentation on theme: "ATS Application Programming: Java Programming"— Presentation transcript:

1 ATS Application Programming: Java Programming
Inheritance 3.2 Inheritance Defining Inheritance Relationships of Inheritance Rules of Inheritance super and this references super() and this() methods Constructor Chaining Casting © Accenture 2005 All Rights Reserved Course Code #Z16325

2 ATS Application Programming: Java Programming
Objectives 3.2 Inheritance Define inheritance Identify relationships of inheritance Describe the rules of inheritance Describe the difference between this and super references Describe the difference between this() and super() methods Describe how to create constructors Describe the steps in constructor chaining Describe how to convert data types using casting © Accenture 2005 All Rights Reserved Course Code #Z16325

3 ATS Application Programming: Java Programming
Defining Inheritance 3.2 Inheritance Inheritance is the ability to derive new classes from existing ones. A derived class ("subclass") inherits the instance variables and methods of the base class ("superclass"), and may add new instance variables and methods. Inheritance defines a hierarchical relationship among classes wherein one class shares the attributes and methods defined in one or more classes. Inheritance is a relationship among classes in which one class shares the structure and behavior of another. A subclass inherits from a superclass. Notes: We provided several definitions just to be comprehensive. Inheritance—a way of organizing classes Term comes from inheritance of traits like eye color, hair color, and so on. Classes with properties in common can be grouped so that their common properties are only defined once. When you extend from an existing class, a new class is created that has the behaviors / and public attributes of the class it’s derived from Explain why the subclass will change if the superclass is changed © Accenture 2005 All Rights Reserved Course Code #Z16325

4 Relationships of Inheritance
ATS Application Programming: Java Programming Relationships of Inheritance 3.2 Inheritance “is-a” relationship a subclass can be used wherever a superclass can be used implemented in Java by extending a class “has-a” relationship a whole-class relationship between a class and its parts also known as composition or aggregation implemented in Java by instantiating an object inside a class “is-a” relationship Vehicle Car Bus Car Engine Wheel “has-a” relationship © Accenture 2005 All Rights Reserved Course Code #Z16325

5 ATS Application Programming: Java Programming
INHERITANCE 3.2 Inheritance Acquiring the properties of an existing Object into newly creating Object to overcome the redeclaration of properties in deferent classes. These are 3 types: 1.Simple Inheritance SUPER SUPER extends extends SUB SUB 1 SUB 2 © Accenture 2005 All Rights Reserved Course Code #Z16325

6 ATS Application Programming: Java Programming
INHERITANCE 3.2 Inheritance 2. Multi Level Inheritance 3. Multiple Inheritance SUPER 1 SUPER 2 SUPER implements extends SUPER 1 SUPER 2 SUB SUB extends implements extends SUB SUB SUB © Accenture 2005 All Rights Reserved Course Code #Z16325

7 ATS Application Programming: Java Programming
extends 3.2 Inheritance Is a keyword used to inherit a class from another class Allows to extend from only one class class One { int a=5; } class Two extends One { int b=10; } © Accenture 2005 All Rights Reserved Course Code #Z16325

8 ATS Application Programming: Java Programming
super 3.2 Inheritance ‘super’ is a keyword used to refer to hidden variables of super class from sub class. super.a=a; It is used to call a constructor of super class from constructor of sub class which should be first statement. super(a,b); It is used to call a super class method from sub class method to avoid redundancy of code super.addNumbers(a, b); © Accenture 2005 All Rights Reserved Course Code #Z16325

9 ATS Application Programming: Java Programming
Rules of Inheritance 3.2 Inheritance A class can only inherit from one class (known as single inheritance). A subclass is guaranteed to do everything the superclass can do. A subclass inherits members from its superclass and can modify or add to its behavior and properties. A subclass can define members of the same name in the superclass, thus hiding the superclass members. Inheritance is transitive (i.e., class A inherits from class B, including what B inherited from class C). All classes inherit from the Object class - the highest in the inheritance hierarchy. private members, hidden members, and constructors are not inherited by subclasses. © Accenture 2005 All Rights Reserved Course Code #Z16325

10 Inheritance Hierarchy
ATS Application Programming: Java Programming Inheritance Hierarchy 3.2 Inheritance Inheritance allows you to define a very general class, then later define more specialized classes by adding new detail. The general class is called the base or parent class. The specialized classes inherit all the properties of the general class. Specialized classes are derived from the base class. They are called derived or child classes. After the general class is developed you only have to write the “difference” or “specialization” code for each derived class. A class hierarchy: classes can be derived from derived classes (child classes can be parent classes) Any class higher in the hierarchy is an ancestor class Any class lower in the hierarchy is a descendent class © Accenture 2005 All Rights Reserved Course Code #Z16325

11 Implementing Inheritance
ATS Application Programming: Java Programming Implementing Inheritance 3.2 Inheritance Inheritance is implemented in Java by the extends keyword class Student extends Person { String course; double grade; /* * other members of Person class * can be accessed here */ } public static void main(String[] args) { Student junior = new Student(); // access current class members junior.course = "Computer Science"; junior.grade = 1.5; // access superclass members junior.setName("Andrew"); junior.setAge(21); junior.setSex('M'); class Person { // set variables to private private static int maleCount; private static int femaleCount; private String name; private char sex; private int age; /* * setters & getters, set to public */ public int getAge() { return age;} public void setAge(int a) { age = a;} public String getName() { return name;} public void setName(String n) { name = n;} public char getSex() { return sex;} public void setSex(char s) { sex = s;} * other methods here } Talking Points: © Accenture 2005 All Rights Reserved Course Code #Z16325

12 ATS Application Programming: Java Programming
this and super 3.2 Inheritance this is a reference to the object of the current class It can be used to distinguish instance variables from local variables It can be assigned to other references, or passed as a parameter, or cast to other types It cannot be used in a static context super is a reference to the object of a superclass Used to access hidden members of the superclass It cannot be assigned to other references, nor passed as a parameter, nor cast to other types © Accenture 2005 All Rights Reserved Course Code #Z16325

13 ATS Application Programming: Java Programming
Using this and super 3.2 Inheritance class Student extends Person { private String course; private double grade; static int studentCount; // setters & getters public String getCourse(){return course;} public void setCourse(String course) { this.course = course; } public double getGrade(){return grade;} public void setGrade(double grade) { this.grade = grade; // access superclass members public void printInfo() { System.out.println(super.getName()); System.out.println(super.getSex()); System.out.println(super.getAge()); class Person { // set variables to private private static int maleCount; private static int femaleCount; private String name; private char sex; private int age; /* * setters & getters, set to public */ public int getAge() { return age;} public void setAge(int a) { age = a;} public String getName() { return name;} public void setName(String n) { name = n;} public char getSex() { return sex;} public void setSex(char s) { sex = s;} * other methods here } Talking Points: © Accenture 2005 All Rights Reserved Course Code #Z16325

14 ATS Application Programming: Java Programming
Constructor Chaining 3.2 Inheritance Constructor chaining is invoking all the constructors in the inheritance hierarchy. Constructor chaining guarantees that all superclass constructors are called. Constructors are invoked starting with the current class up to the Object class, then they are executed in reverse order. © Accenture 2005 All Rights Reserved Course Code #Z16325

15 ATS Application Programming: Java Programming
this() and super() 3.2 Inheritance this(<optional parameters>) used to call constructors within the same class used to implement local chaining of constructors must be the first statement in a constructor and can only be used in a constructor super(<optional parameters>) used to invoke constructors in the immediate superclass used to implement chaining of subclass-to-superclass constructors Talking Points: © Accenture 2005 All Rights Reserved Course Code #Z16325

16 Implementing Constructor Chaining
ATS Application Programming: Java Programming Implementing Constructor Chaining 3.2 Inheritance class Person { private String name; private char sex; private int age; Person() { // default constructor sex = 'M'; age = 0; } class Student extends Person { String course; double grade; static int studentCount; Student() { // default constructor super(); // chain to superclass studentCount++; Student(String n) { // overloaded constructor (non-default) this(); // local chain super.setName(n); public static void main(String[] args) { Student junior = new Student("Andrew"); Talking Points: © Accenture 2005 All Rights Reserved Course Code #Z16325

17 ATS Application Programming: Java Programming
Casting 3.2 Inheritance Casting is converting from one data type to another Implicit casting is an implied casting operation Explicit casting is a required casting operation Primitive casting is converting a primitive data type to another data type Widening conversion is casting a narrower data type to a broader data type Narrowing conversion is casting a broader data type to a narrower data type Reference casting is converting a reference data type to another Upcasting is conversion up the inheritance hierarchy Downcasting is conversion down the inheritance hierarchy Casting between primitive and reference type is not allowed In Java, casting is implemented using () operator © Accenture 2005 All Rights Reserved Course Code #Z16325

18 Reference Casting Flow
ATS Application Programming: Java Programming Reference Casting Flow 3.2 Inheritance “Upcasting” Vehicle “Downcasting” Car Boat Plane Imagine it as a container! Vehicle Car Boat Plane © Accenture 2005 All Rights Reserved Course Code #Z16325

19 Reference Casting Rule
ATS Application Programming: Java Programming Reference Casting Rule 3.2 Inheritance Operation Conversion Type string concatenation implicit upcasting parameter passing implicit upcasting (if formal parameter is a superclass) (all others) explicit casting (downcasting or upcasting ) © Accenture 2005 All Rights Reserved Course Code #Z16325

20 Implementing Reference Casting
ATS Application Programming: Java Programming Implementing Reference Casting 3.2 Inheritance public class Vehicle {} public class Car extends Vehicle {} public class Boat extends Vehicle {} public class Plane extends Vehicle {} public static void main(String args[]) { Vehicle v = new Vehicle(); Car c = new Car(); Boat b = new Boat(); Plane p = new Plane(); Vehicle vc = new Car(); v = c; // This will compile. c = v; // This will not compile!!! b = p; // will this compile? b = (Boat) v; // will this compile? c = (Car) vc; // will this compile? } Faculty Notes: Line 9 will compile because Car extends Vehicle, therefore an object of type Car can be assigned to a reference of type Vehicle. Line 10 will not compile because the compiler will require an explicit down casting. Line 11 will not compile because class Boat and class Plane do not have any relationship of inheritance. To demonstrate this in code, the Answer.java file can be found in the Sample Code folder. © Accenture 2005 All Rights Reserved Course Code #Z16325

21 ATS Application Programming: Java Programming
Key Points 3.2 Inheritance Inheritance is deriving a new class (subclass) from an existing class (superclass) Inheritance can exhibit an “is-a” or “has-a” relationship In Java, a class can only inherit from a single class All classes inherit from Object class – the highest in the inheritance hierarchy In Java, inheritance is implemented by the extends keyword this is a reference to the object of the current class super is a reference to the object of a superclass this() is used to call constructors within the same class super() is used to invoke constructors in the immediate superclass Casting is converting from one data type to another © Accenture 2005 All Rights Reserved Course Code #Z16325


Download ppt "ATS Application Programming: Java Programming"

Similar presentations


Ads by Google