abstract classes and methods in java

113
Abstract classes and Methods in Java A Presentation in Depth

Upload: harish-gyanani

Post on 10-Nov-2014

852 views

Category:

Education


0 download

DESCRIPTION

Index Definition Usefulness Why they cannot be instantiated? How to use abstract classes? Purpose of abstract class What is Concrete class? Examples Characteristics explained

TRANSCRIPT

Page 1: Abstract classes and Methods in java

Abstract classes and Methods inJava

A Presentation in Depth

Page 2: Abstract classes and Methods in java

Index

DefinitionUsefulnessWhy they cannot be instantiated?How to use abstract classes?Purpose of abstract classWhat is Concrete class?ExamplesCharacteristics explained

Page 3: Abstract classes and Methods in java

Definition

Abstract classes—for which you never intend tocreate objects.

Page 4: Abstract classes and Methods in java

Useful

They’re used only as superclasses in inheritancehierarchies, we refer to them as abstractsuperclasses.

Page 5: Abstract classes and Methods in java

Why they cannot be instantiated?

1. These classes cannot be used to instantiateobjects, because abstract classes areincomplete.

2. Abstract superclasses are too general tocreate real objects—they specify only what iscommon among subclasses.

Page 6: Abstract classes and Methods in java

So how can we use them? Orinstantiate them?

Subclasses must declare the “missing pieces” tobecome “concrete” classes, from which you caninstantiate objects.

Page 7: Abstract classes and Methods in java

What is the purpose of abstract class?

An abstract class’s purpose is to provide anappropriate superclass from which other classescan inherit and thus share a common design.

Page 8: Abstract classes and Methods in java

What is concrete class?

Classes that can be used to instantiate objectsare called concrete classes. Such classes provideimplementations of every method they declare(some of the implementations can be inherited).

Concrete classes provide the specifics that makeit reasonable to instantiate objects.

Page 9: Abstract classes and Methods in java

Example 1

Page 10: Abstract classes and Methods in java

Example 2

Page 11: Abstract classes and Methods in java

Characteristics summary

Page 12: Abstract classes and Methods in java

Characteristics summary

1. Abstract class can be empty.

Page 13: Abstract classes and Methods in java

Characteristics summary

1. Abstract class can be empty.

2. Abstract class can be made without abstractmethods.

Page 14: Abstract classes and Methods in java

Characteristics summary

1. Abstract class can be empty.

2. Abstract class can be made without abstractmethods.

3. A non-abstract class cannot contain abstractmethod.

Page 15: Abstract classes and Methods in java
Page 16: Abstract classes and Methods in java

Abstract class can be empty

Page 17: Abstract classes and Methods in java

Abstract class can be empty

abstract class Vehicle{}

Page 18: Abstract classes and Methods in java

Abstract class can be empty

abstract class Vehicle{}

Contains nomembers

Page 19: Abstract classes and Methods in java

Abstract class can be empty

abstract class Vehicle{}

Contains nomembersPerfectly validPerfectly valid

Page 20: Abstract classes and Methods in java
Page 21: Abstract classes and Methods in java

Abstract class can be made withoutabstract methods

Page 22: Abstract classes and Methods in java

Abstract class can be made withoutabstract methods

abstract class Vehicle{

void brake(){System.out.println("non abstract method brake");

}}

Page 23: Abstract classes and Methods in java

Abstract class can be made withoutabstract methods

abstract class Vehicle{

void brake(){System.out.println("non abstract method brake");

}}

Non abstractmethod

Non abstractmethod

Page 24: Abstract classes and Methods in java

Abstract class can be made withoutabstract methods

abstract class Vehicle{

void brake(){System.out.println("non abstract method brake");

}}

Perfectlyvalid

Perfectlyvalid

Non abstractmethod

Non abstractmethod

Page 25: Abstract classes and Methods in java
Page 26: Abstract classes and Methods in java

class Vehicle{

abstract void brake();}

Page 27: Abstract classes and Methods in java

class Vehicle{

abstract void brake();}

Invalid/compilationerror

Page 28: Abstract classes and Methods in java

A non-abstract class cannot containabstract method

class Vehicle{

abstract void brake();}

Invalid/compilationerror

Page 29: Abstract classes and Methods in java

A non-abstract class cannot containabstract method

class Vehicle{

abstract void brake();}

Invalid/compilationerror

In other words, ifa class contains

abstract methodthen class mustalso be abstract.

In other words, ifa class contains

abstract methodthen class mustalso be abstract.

Page 30: Abstract classes and Methods in java

A non-abstract class cannot containabstract method

class Vehicle{

abstract void brake();}

Invalid/compilationerror

abstract class Vehicle{

abstract void brake();}

Now valid

In other words, ifa class contains

abstract methodthen class mustalso be abstract.

In other words, ifa class contains

abstract methodthen class mustalso be abstract.

Page 31: Abstract classes and Methods in java

Example 3

Page 32: Abstract classes and Methods in java

Example 4

Page 33: Abstract classes and Methods in java

Characteristics summary

Page 34: Abstract classes and Methods in java

Characteristics summary

4. Class can be final or abstract, not both.

Page 35: Abstract classes and Methods in java

Characteristics summary

4. Class can be final or abstract, not both.

5. Method be can be final or abstract not both.

Page 36: Abstract classes and Methods in java

Class can be abstract or final, not both

Page 37: Abstract classes and Methods in java

Class can be abstract or final, not both

ErrorError

Page 38: Abstract classes and Methods in java

Method can be abstract or final, notboth

Page 39: Abstract classes and Methods in java

Method can be abstract or final, notboth

ErrorError

Page 40: Abstract classes and Methods in java

Real Examples of Abstract Classes inJava API

1. java.awt.Component

Component

Button Checkbox Label TextComponent

Page 41: Abstract classes and Methods in java

Real Examples of Abstract Classes inJava API

2. java.lang.Number

Number

Byte Long Integer Float Double

Page 42: Abstract classes and Methods in java

Real Examples of Abstract Classes inJava API

3. javax.swing.AbstractButton

AbstractButtonAbstractButton

JButtonJButton JToggleButtonJToggleButton JMenuItemJMenuItem

Page 43: Abstract classes and Methods in java

Characteristics summary

Page 44: Abstract classes and Methods in java

Characteristics summary

6. Non-abstract class cannot contain abstract methods eventhere are non abstract methods too.

Page 45: Abstract classes and Methods in java

Characteristics summary

6. Non-abstract class cannot contain abstract methods eventhere are non abstract methods too.

7. An abstract class can contain both abstract and non abstractmethods.

Page 46: Abstract classes and Methods in java

Characteristics summary

6. Non-abstract class cannot contain abstract methods eventhere are non abstract methods too.

7. An abstract class can contain both abstract and non abstractmethods.

8. Abstract class can be inherited like normal class.

Page 47: Abstract classes and Methods in java

Characteristics summary

6. Non-abstract class cannot contain abstract methods eventhere are non abstract methods too.

7. An abstract class can contain both abstract and non abstractmethods.

8. Abstract class can be inherited like normal class.

9. If abstract class contains no abstract methods then subclassof it, can be empty.

Page 48: Abstract classes and Methods in java

Non-abstract class cannot contain abstractmethods even there are non-abstract methods

too

Page 49: Abstract classes and Methods in java

Non-abstract class cannot contain abstractmethods even there are non-abstract methods

too

Non abstractmethod

Non abstractmethod

Page 50: Abstract classes and Methods in java

Non-abstract class cannot contain abstractmethods even there are non-abstract methods

too

AbstractmethodAbstractmethod

Non abstractmethod

Non abstractmethod

Page 51: Abstract classes and Methods in java

Non-abstract class cannot contain abstractmethods even there are non-abstract methods

too

AbstractmethodAbstractmethod

Non abstractmethod

Non abstractmethod

Either make the classabstract or make method

non abstract to correctthis error

Either make the classabstract or make method

non abstract to correctthis error

Page 52: Abstract classes and Methods in java
Page 53: Abstract classes and Methods in java
Page 54: Abstract classes and Methods in java

An abstract class can contain bothabstract and non abstract methods

Page 55: Abstract classes and Methods in java

An abstract class can contain bothabstract and non abstract methods

Nonabstractmethod

Nonabstractmethod

Page 56: Abstract classes and Methods in java

An abstract class can contain bothabstract and non abstract methods

Nonabstractmethod

Nonabstractmethod

AbstractmethodAbstractmethod

Page 57: Abstract classes and Methods in java

Abstract class can be inherited likenormal class

If abstract classis empty thensubclass can

also be empty.

If abstract classis empty thensubclass can

also be empty.

Page 58: Abstract classes and Methods in java

Abstract class can be inherited likenormal class

If abstract classis empty thensubclass can

also be empty.

If abstract classis empty thensubclass can

also be empty.

Page 59: Abstract classes and Methods in java

Abstract class can be inherited likenormal class

No errorIf abstract classis empty thensubclass can

also be empty.

If abstract classis empty thensubclass can

also be empty.

Page 60: Abstract classes and Methods in java

If abstract class contains no abstractmethods then subclass of it, can be empty

Page 61: Abstract classes and Methods in java

If abstract class contains no abstractmethods then subclass of it, can be empty

Page 62: Abstract classes and Methods in java

If abstract class contains no abstractmethods then subclass of it, can be empty

Perfectlyvalid

Perfectlyvalid

Page 63: Abstract classes and Methods in java

Example 5

Page 64: Abstract classes and Methods in java

Example 6

Page 65: Abstract classes and Methods in java

Example 7

Page 66: Abstract classes and Methods in java

Characteristics summary

Page 67: Abstract classes and Methods in java

Characteristics summary10. If abstract class contains one or more abstract methods

then subclass of it, can not be empty.

Page 68: Abstract classes and Methods in java

Characteristics summary10. If abstract class contains one or more abstract methods

then subclass of it, can not be empty.

11. If abstract class contains one or more abstract methodsthen subclass of it, can be empty, only if subclass is alsoabstract.

Page 69: Abstract classes and Methods in java

Characteristics summary10. If abstract class contains one or more abstract methods

then subclass of it, can not be empty.

11. If abstract class contains one or more abstract methodsthen subclass of it, can be empty, only if subclass is alsoabstract.

12. If a abstract class contains abstract methods then subclassmust have to implements(write code) for abstractmethods, if subclass does not want to be abstract.

Page 70: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can not be empty

Page 71: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can not be empty

Page 72: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can not be empty

ErrorError

Page 73: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can not be empty

ErrorError

Page 74: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can not be empty

There are two ways to correctthis error either implement

abstract methods in subclass ormake subclass abstract.

ErrorError

Page 75: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can not be empty

There are two ways to correctthis error either implement

abstract methods in subclass ormake subclass abstract.

ErrorError

Next slideswill show

how toremove this

error

Next slideswill show

how toremove this

error

Page 76: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be empty, only

if subclass is also abstract

Page 77: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be empty, only

if subclass is also abstract

Page 78: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be empty, only

if subclass is also abstract

Perfectlyvalid

Perfectlyvalid

Page 79: Abstract classes and Methods in java

If a abstract class contains abstract methods then subclass musthave to implements(write code) for abstract methods, if subclass

does not want to be abstract

Page 80: Abstract classes and Methods in java

If a abstract class contains abstract methods then subclass musthave to implements(write code) for abstract methods, if subclass

does not want to be abstract

Perfectlyvalid

Perfectlyvalid

Page 81: Abstract classes and Methods in java

Characteristics summary

Page 82: Abstract classes and Methods in java

Characteristics summary13.Abstract class can implement super class

abstract methods.

Page 83: Abstract classes and Methods in java

Characteristics summary13.Abstract class can implement super class

abstract methods.

14.Abstract classes can contain final methods,constructors, static methods.

Page 84: Abstract classes and Methods in java

Characteristics summary13.Abstract class can implement super class

abstract methods.

14.Abstract classes can contain final methods,constructors, static methods.

15.An abstract class cannot be instantiated, but wecan make reference of this class.

Page 85: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be abstract and still

can implements super class methods.

Page 86: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be abstract and still

can implements super class methods.

Page 87: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be abstract and still

can implements super class methods. Abstractsuper class

Page 88: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be abstract and still

can implements super class methods.

Abstractsub class

Abstractsuper class

Page 89: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be abstract and still

can implements super class methods.

In other words,abstract class canimplement super

class abstractmethods

In other words,abstract class canimplement super

class abstractmethods

Abstractsub class

Abstractsuper class

Page 90: Abstract classes and Methods in java

If abstract class contains one or more abstractmethods then subclass of it, can be abstract and still

can implements super class methods.

In other words,abstract class canimplement super

class abstractmethods

In other words,abstract class canimplement super

class abstractmethods

Perfectlyvalid

Perfectlyvalid

Abstractsub class

Abstractsuper class

Page 91: Abstract classes and Methods in java

Abstract classes can containconstructors

Page 92: Abstract classes and Methods in java

Abstract classes can contain staticmethods

Page 93: Abstract classes and Methods in java

Abstract classes can contain staticmethods

Page 94: Abstract classes and Methods in java

Abstract classes can contain staticmethods

Page 95: Abstract classes and Methods in java

Abstract classes can contain staticmethods

Output

Page 96: Abstract classes and Methods in java

Abstract classes can contain finalmethods

Page 97: Abstract classes and Methods in java

Abstract classes can contain finalmethods

Perfectlyvalid

Perfectlyvalid

Page 98: Abstract classes and Methods in java

An abstract class cannot beinstantiated

Page 99: Abstract classes and Methods in java

An abstract class cannot beinstantiated

We can make reference ofabstract class

Page 100: Abstract classes and Methods in java

An abstract class cannot beinstantiated

Error

We can make reference ofabstract class

Page 101: Abstract classes and Methods in java

Example 8

Page 102: Abstract classes and Methods in java

Example 9

Page 103: Abstract classes and Methods in java

Characteristics summary

8. Abstract methods cannot be private. Theycan have public, protected or default accessspecifier.

9. Abstract class can extend non-abstract class.

Page 104: Abstract classes and Methods in java

Abstract methods cannot be private

Page 105: Abstract classes and Methods in java

Abstract methods cannot be private

ErrorError

Page 106: Abstract classes and Methods in java

Abstract methods can use publicaccess specifier

Page 107: Abstract classes and Methods in java

Abstract methods can use protectedaccess specifier

Page 108: Abstract classes and Methods in java

Abstract methods can use defaultaccess specifier

Page 109: Abstract classes and Methods in java

Abstract class can inherit non-abstractclass

Page 110: Abstract classes and Methods in java

Abstract class can inherit non-abstractclass

Perfectlyvalid

Perfectlyvalid

Page 111: Abstract classes and Methods in java

Complete Characteristics summary

1. Abstract class can be empty.(slide 2)2. Abstract class can be made without abstract methods. (slide 3)3. A non-abstract class cannot contain abstract method.(slide 4)4. Non-abstract class cannot contain abstract methods even there

are non abstract methods too.(slide 5)5. An abstract class can contain both abstract and non abstract

methods.(slide 6)6. Abstract class can be inherited like normal class(slide 7)7. If abstract class contains no abstract methods then subclass of it,

can be empty(slide 8)

Page 112: Abstract classes and Methods in java

Complete Characteristics summary8. If abstract class contains one or more abstract methods then subclass of

it, can not be empty(slide 9)9. If abstract class contains one or more abstract methods then subclass of

it, can be empty, only if subclass is also abstract(slide 10)10. If a abstract class contains abstract methods then subclass must have to

implements(write code) for abstract methods, if subclass does not wantto be abstract(slide 11)

11. Abstract class can implement super class abstract methods. (slide 12)12. Abstract classes can contain final methods, constructors, static

methods.(slide 13,14,15)13. An abstract class cannot be instantiated, but we can make reference of

this class.(slide 16)14. Abstract methods cannot be private. They can have public, protected or

default access specifier.(slide 17,18,19,20)15. Abstract class can extend non-abstract class.(slide 21)

Page 113: Abstract classes and Methods in java

Complete Characteristics summary

17.Class can be final or abstract, not both.(slide22)

18.Method be can be final or abstract notboth.(slide 23)