Uploaded by Admasu Aklilu

Chap-1(Java)

advertisement
Object Oriented Programming
Chapter 1: Abstract Classes and
Interface
Arsi University
Department MIS
Prepared Debritu A.
Course Content
2
 Introduction
 Abstract Classes in Java
 Java Interfaces
 Declaring Interfaces
 Implementing Interface
 Extending Interface
OOP –MIS-AU
Introduction to Abstraction
3
 Essential element of object-oriented programming.
 Manages complexity.
 Managed through the use of hierarchical classifications.
 Allows you to layer the semantics of complex systems, breaking
them into more manageable pieces.
 Process of hiding the implementation details of a class, and
showing only functionality to the user.
 Abstraction lets you focus on what the object does instead of how it
does it.
 It can be achieved using Abstract classes and Interfaces.
OOP –MIS-AU
Abstract Classes in Java
4
 Class that is declared with abstract keyword.
 It can have abstract and non-abstract methods.
 Abstract method- declared as abstract but not defined (has no
implementation).
 Non-abstract method- declared and defined (has implementation).
 Good for defining a general category containing specific, “concrete”
classes.
 Concrete classes are those that are specific enough to be instantiated.
OOP –MIS-AU
Java Interfaces
5
Way
to describe what classes should do, without
specifying how they should do it.
A collection of abstract methods.
Two different concepts:
Class =attributes and behaviors
An interface contains behaviors that a class implements.
OOP –MIS-AU
Java Interfaces …
6
 Similarities:
An
interface can contain any number of methods.
An
interface is written in a file with a .java extension, with the name of
the interface matching the name of the file.
The
bytecode of an interface appears in a .class file.
Interfaces
appear in packages, and their corresponding bytecode file
must be in a directory structure that matches the package name.
OOP –MIS-AU
Java Interfaces …
7
 Difference
You
cannot instantiate an interface.
An
interface does not contain any constructors.
All
of the methods in an interface are abstract.
An
interface cannot contain instance fields.
An
interface is not extended by a class; it is implemented by a
class.
An
interface can extend multiple interfaces
OOP –MIS-AU
Java Interfaces …
8
Declaring Interfaces
Interface
keyword is used to declare an interface.
access interface Nameofinterface{
return-type method-name(parameter-list);
}
Methods
that are declared have no bodies
End with a semicolon after the parameter list.
OOP –MIS-AU
Java Interfaces …
9
Properties of Interfaces:
An
interface is implicitly abstract. no need of using abstract
keyword
Each
method in an interface is also implicitly abstract.
Methods
in an interface are implicitly public.
Public interface Animal{
Public void eat();
Public void travel();
}
OOP –MIS-AU
Java Interfaces …
10
Implementing Interfaces:
When
a class implements an interface, class signing a contract,
agreeing to perform the specific behaviors of the interface.

If a class does not perform all the behaviors of the interface,
the class must declared as abstract.
Class
OOP –MIS-AU
uses the implements keyword to implement an interface.
Java Interfaces …
11
 Implementing Interfaces: …
Public class mammal implemets Animal{
Public void eat(){
System.out.println(“mammal eat”);
}
Public void travel(){
System.out.println(“mammal travel”);
}
Public static void main(String args[]){
Mammal m =new mammal();
m.eat();
m.travel();
}
}
OOP –MIS-AU
Extending Interfaces
12
 Interface can extend another interface, similarly to the way
that a class can extend another class.
 Extends keyword is used to extend an interface, and the child
interface inherits the methods of the parent interface.
 Interface can extend more than one parent interface.
Extends keyword is used once, and the parent interfaces are declared in a
comma-separated list.
 Example: if the Hockey interface extends both Sports and
Event, it would be declared as:

Public interface Hockey extends Sports, Event
OOP–MIS-AU
Extending Interfaces…
13
 Differences between Abstract classes and Interfaces:
OOP–MIS-AU
Thank you!!!
14
End of chapter One!
OOP-MIS-AU
Download