This document provides an overview of abstract classes and interfaces in Java. It defines what an interface is, how to define and use interfaces, and why interfaces are used instead of abstract classes. Key points include:
Interfaces are similar to abstract classes but can only contain abstract methods and constants. Classes implement interfaces to inherit their methods. Abstract classes can contain both abstract and non-abstract methods.
Interfaces are used instead of abstract classes to allow for multiple inheritance in Java, since a class can only extend one parent class but implement multiple interfaces. Interfaces define weak "is-a" relationships while abstract classes define strong "is-a" relationships.
The UML notation for interfaces uses <<interface>> to differentiate them
Java OOP Programming language (Part 6) - Abstract Class & InterfaceOUM SAOKOSAL
Java OOP Programming language (Part 6) - Abstract Class & Interface
Oum Saokosal
Where to me find me more:
YouTube: https://www.youtube.com/user/oumsaokosal
FB Page: https://facebook.com/kosalgeek
PPT: https://www.slideshare.net/oumsaokosal
Twitter: https://twitter.com/okosal
Web: http://kosalgeek.com
What are Abstract Classes in Java | EdurekaEdureka!
YouTube Link: https://youtu.be/5X0Y--92pMI
**Java, J2EE & SOA Certification Training - https://www.edureka.co/java-j2ee-training-course **
This Edureka PPT on Abstract Classes in Java will provide you with detailed knowledge about Abstract Classes in Java and along with it, This PPT will also cover some examples of Abstract Classes in Java, in order to provide you with a deep understanding about their functionality. This PPT will cover the following topics:
What are Abstract Classes in Java?
Why do we need an Abstract Classes in Java?
Rules for using Abstract Classes in Java
Ways to achieve Abstraction in Java
The Syntax for Abstract Classes
Practical Examples of Abstract Classes
Difference between Interface and Abstract Class
Complete Java Playlist: http://bit.ly/2XcYNH5
Complete Blog Series: http://bit.ly/2YoabkT
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Java OOP Programming language (Part 6) - Abstract Class & InterfaceOUM SAOKOSAL
Java OOP Programming language (Part 6) - Abstract Class & Interface
Oum Saokosal
Where to me find me more:
YouTube: https://www.youtube.com/user/oumsaokosal
FB Page: https://facebook.com/kosalgeek
PPT: https://www.slideshare.net/oumsaokosal
Twitter: https://twitter.com/okosal
Web: http://kosalgeek.com
What are Abstract Classes in Java | EdurekaEdureka!
YouTube Link: https://youtu.be/5X0Y--92pMI
**Java, J2EE & SOA Certification Training - https://www.edureka.co/java-j2ee-training-course **
This Edureka PPT on Abstract Classes in Java will provide you with detailed knowledge about Abstract Classes in Java and along with it, This PPT will also cover some examples of Abstract Classes in Java, in order to provide you with a deep understanding about their functionality. This PPT will cover the following topics:
What are Abstract Classes in Java?
Why do we need an Abstract Classes in Java?
Rules for using Abstract Classes in Java
Ways to achieve Abstraction in Java
The Syntax for Abstract Classes
Practical Examples of Abstract Classes
Difference between Interface and Abstract Class
Complete Java Playlist: http://bit.ly/2XcYNH5
Complete Blog Series: http://bit.ly/2YoabkT
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
An abstract class is a class that is declared abstract —it may or may not include abstract methods. Abstract classes cannot be instantiated, but they can be subclassed. When an abstract class is subclassed, the subclass usually provides implementations for all of the abstract methods in its parent class.
Interface in java ,multiple inheritance in java, interface implementationHoneyChintal
multiple inheritance in java, interface implementation, abstraction,
multiple inheritance in java using interface, how to use interface,
how to use java, how to execute a java code
Interface in java By Dheeraj Kumar Singhdheeraj_cse
In Java,
An interface is a way through which unrelated objects use to interact with one another.
Using interface, you can specify what a class must do, but not how it does it.
It is not a class but a set of requirements for classes that implement the interface.
Java abstract class & abstract methods,Abstract class in java
Abstract classes are classes that contain one or more abstract methods. An abstract method is a method that is declared, but contains no implementation. Abstract classes may not be instantiated, and require subclasses to provide implementations for the abstract methods.
Abstraction is a process by which concepts are derived from the usage and classification of literal ("real" or "concrete") concepts.
Abstraction is a concept that acts as a super-categorical noun for all subordinate concepts, and connects any related concepts as a group, field, or category.
An interface is a reference type in Java. It is similar to the class. It is a collection of abstract methods. A class implements an interface, thereby inheriting the abstract methods of the interface. Along with abstract methods, an interface may also contain constants, default methods, static methods, and nested types.
oops concept in java | object oriented programming in javaCPD INDIA
object oriented programming is a key concept for the development of application in windows as well as web based application environment. oops concept maps real world through its concept of classes, objects, inheritance, polymorphism which help in making a robust application.
An abstract class is a class that is declared abstract —it may or may not include abstract methods. Abstract classes cannot be instantiated, but they can be subclassed. When an abstract class is subclassed, the subclass usually provides implementations for all of the abstract methods in its parent class.
Interface in java ,multiple inheritance in java, interface implementationHoneyChintal
multiple inheritance in java, interface implementation, abstraction,
multiple inheritance in java using interface, how to use interface,
how to use java, how to execute a java code
Interface in java By Dheeraj Kumar Singhdheeraj_cse
In Java,
An interface is a way through which unrelated objects use to interact with one another.
Using interface, you can specify what a class must do, but not how it does it.
It is not a class but a set of requirements for classes that implement the interface.
Java abstract class & abstract methods,Abstract class in java
Abstract classes are classes that contain one or more abstract methods. An abstract method is a method that is declared, but contains no implementation. Abstract classes may not be instantiated, and require subclasses to provide implementations for the abstract methods.
Abstraction is a process by which concepts are derived from the usage and classification of literal ("real" or "concrete") concepts.
Abstraction is a concept that acts as a super-categorical noun for all subordinate concepts, and connects any related concepts as a group, field, or category.
An interface is a reference type in Java. It is similar to the class. It is a collection of abstract methods. A class implements an interface, thereby inheriting the abstract methods of the interface. Along with abstract methods, an interface may also contain constants, default methods, static methods, and nested types.
oops concept in java | object oriented programming in javaCPD INDIA
object oriented programming is a key concept for the development of application in windows as well as web based application environment. oops concept maps real world through its concept of classes, objects, inheritance, polymorphism which help in making a robust application.
Presentation I gave at the Houston TechFest Sept 2009. This presentation goes over Extension Methods, Lambdas, Expression Trees, and Fluent Interfaces. I also show examples from popular frameworks using these techniques.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
1. CHAPTER 9
ABSTRACT CLASS & INTERFACE
Oum Saokosal, Chief of Computer Science
National Polytechnic Institute of Cambodia
Tel: (855)-12-252-752
E-mail: oum_saokosal@yahoo.com
1
3. Interface
• What is interface?
• How to define interface?
• How to use interface?
• Why not use abstract class instead of interface?
• UML of interface
• Importance of interface
• Different between interface and abstract class
• Notes for interface
• Class Design Guidline
• Last words
3
4. What is Interface?
• In many ways, Interface is very similar to abstract class
but it marks with interface keyword instead of
abstract class keyword.
public interface InterfaceName {
}
• Unlike abstract class which can also contain nonabstract
methods, interface contain ONLY abstract methods and
constants.
4
5. How to define interface?
• Defining an interface:
<modifier> interface InterfaceName{
/* Constant declarations */
/* Method signatures */
}
• E.g:
public interface Moveable{
final int MAX_MOVE = 20;
final int MIN_MOVE = 1;
public void move();
}
5
6. How to use interface? (1)
• Use implements keyword to implement an interface.
• E.g. Assume we have King implementing Moveable.
public interface Moveable{
final int MAX_MOVE = 20;
final int MIN_MOVE = 1;
public String howToMove();
}
public class King implements Moveable{
@Override
public String howToMove(){
return “One step to every direction”;
}
}
6
7. How to use interface? (2)
You can do this also:
public class Test extends JFrame implements Moveable{
public Test(){
setTitle(howToMove());
setSize(500, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public String howToMove(){
return “One step to every direction”;
}
}
7
8. Why not use abstract class instead of
interface? (1)
8
Hey Rabbit! Today’s class is about
interface. The word “interface” here
means GUI, Graphical User Interface?
Not at all, Ball. GUI is GUI.
Interface here is a kind of
ideas in OOP which is similar to
abstract class. I’ll tell ya what...
9. Why not use abstract class instead of
interface? (2)
CB: OK! Let me start my question. What is interface?
SR: Just like I said. Interface is a kind of ideas in OOP
which is similar to abstract class.
CB: Can you review what the abstract class is?
SR: Come on... You’ve learned it, haven’t you? You should
know it...!
CB: Well, but ... you know...
SR: - OK, no but. I can tell some...
- Actually, the most important thing of abstract class
is just to GUARANTEE that its closed subclasses
MUST override its abstract methods.
9
10. Why not use abstract class instead of
interface? (3)
CB: Why guarantee?
SR: Because of polymorphism. Do you remember the
form of polymorphism.
CR: Like this:
Vehicle v = new Jeep();
v.getGun();
SR: And what wrong if Jeep didn’t override
getGun() method?
CR: Oh I see. Then it will call getGun() from the
parent Vehicle. Because Jeep didn’t..., I see!
10
11. Why not use abstract class instead of
interface? (4)
SR: So how to guarantee or to force ITS CLOSED
SUBCLASSES to override every methods in
superclass?
CB: Hmmm, we make the superclass to be abstract class
and so do the methods.
SR: That’s right. The interface acts the SAME things.
CR: I see. I think if the abstract class and interface are
the same, why we need interface?
And WHY DON’T WE USE ABSTRACT CLASS
INSTEAD OF INTERFACE?
11
12. Why not use abstract class instead of
interface? (5)
SR: - It’s such a good question?
- You know, in some other languages like C++, a class
can inherit multiple superclasses which is known
multiple inheritance. Java, however, does not allow
multiple inheritance. That is, a class can only have a
single inheritance.
CB: So what’s wrong with the single inheritance?
SR: Well, A class can inherit only one superclass. Like:
public class Jeep extends Vehicle{
}
12
13. Why not use abstract class instead of
interface? (6)
CB: Yes. It is right. Vehicle must be a parent of Jeep.
SR: What about if we want to use JApplet in Vehicle
as well?
CB: Then we can do like this:
public class Jeep extends JApplet, Vehicle{
}
SR: That’s what I’m talking about! You cannot have
multiple inheritance in Java. If you still want to do like
this, you will get compile error.
And You know, you can’t do this in other languages like
ActionScript or C# as well. You cannot!!!
13
14. Why not use abstract class instead of
interface? (7)
CB: So...
SR: you have to make one of these two classes
(JApplet and Vehicle) to be interface. Because
you can inherit one class and implement another class.
CB: But which one should I choose to be interface?
SR: It’s not a question!
CB: Why not?
SR: JApplet is a Java API. How can you change it to
interface? You can only change your Vehicle from
abstract class to interface.
14
15. Why not use abstract class instead of
interface? (8)
CB:OK. Can you change Vehicle to interface for me?
SR: Not again. You should know to do it !!!
CB: I don’t know. That’s why I ask you!
SR: OK. Here is the code of abstract class:
public abstract class Vehicle {
public abstract String getTradeMark();
public abstract double getSpeed();
public abstract boolean hasWeapon();
}
15
16. Why not use abstract class instead of
interface? (9)
SR: And here is the change to interface:
public interface Vehicle {
public String getTradeMark();
public double getSpeed();
public boolean hasWeapon();
}
CB: I think you didn’t mark methods with abstract
keyword!
SR: That’s OK. Mark it or not, it’s the same. It’s always
abstract automatically.
16
17. Why not use abstract class instead of
interface? (10)
CB: Any change with the Jeep class?
SR: Of course, but a bit. Just from extends to implements.
public class Jeep implements Vehicle {
public String getTradeMark(){
return “Jeep”;
}
public double getSpeed(){
return 250;
}
public boolean hasWeapon(){
return true;
}
}
17
18. Why not use abstract class instead of
interface? (11)
CB: I see. It’s great!
SR: Even greater than this, Java allow to have
MULTIPLE INTERFACE. That is, you can inherit only
one class, but you can have many interfaces.
E.g.:
public class Fish extends ChessCharacter
implements Runnable, ActionListener,
KeyListener {
/*Overridden methods are here*/
}
CB: Wow, wonderful. Now I know why we use interface
instead of abstract class.
18
19. Why not use abstract class instead of
interface? (12)
SR: However, You should know that in interface, you
CANNOT include nonabstract methods at all;
whereas in abstract class, you can MIX nonabstract
and abstract methods together.
CB: You mean, if we make an abstract class, then its
subclasses could reuse some nonabstract methods
without override.
SR: That’s right... and...
CB: On the other hands, if we make an interface, then
classes that implement the interface MUST override
every method.
SR: Yes.. You’re right.
19
20. UML of Interface (1)
• In some old books, you could see UML notation to
descript an interface like this:
20
Runnable
+ run():void
Character
+ getCharacter():String
+ getRole(): String
Interface abstract class
21. UML of Interface (2)
• But in UML 2.0, to make a difference from the abstract
class and the interface notation, they do like this:
21
<<interface>>
Runnable
+ run():void
Character
+ getCharacter():String
+ getRole(): String
Interface abstract class
22. UML of Interface (3)
• And a line to indicate that a class implements an interface
is dotted line with white arrow head.
22
<<interface>>
Runnable
+ run():void
Fish
<<interface>>
ActionListener
+ actionPerformed(e:ActionEvent ):void
23. Importance of interface (1)
• To define an interface have to mark interface keyword
instead of class keyword.
• Interface can contain only constants and abstract methods.
Note that we DON’T need to mark method with abstract and
all the methods are public.
public interface Moveable{
//Constants
final int MAX_MOVE = 20;
final int MIN_MOVE = 1;
//abstract methods
public String howToMove();
}
23
24. Differences between interface and abstract
class (1)
Like abstract class,
1. if a class implement an interface, you have to
override the interface’s methods in the class.
2. You cannot create instances from an interface by
using new operator.
3. Interface can be a type as well.
Runnable r;
1. the purpose of creating interface is because of
polymorphism.
24
25. Differences between interface and abstract
class (2)
Unlike abstract class,
1. You can have multiple interface in one class. To implement
those interfaces, use implements keyword and separate
interfaces by comma.
public class Test implements Runnable,
ActionListener, MouseMotionListener {
/* Overridden interfaces methods */
}
2. Interface uses interface keyword.
3. Interface is NOT designed to be superclass. Interface is
designed to add some behaviors to a class.
25
26. Different between interface and abstract class
(3)
4. In the relationships, we say that:
4.1. A relationship between class/abstract class and class
is a strong relationship. It is known as IS-A relationship.
E.g: A duck is a bird. It clearly means the duck is really a
bird. So the bird can be a superclass of a duck. It could be
either concrete or abstract class.
4.2. A relationship between class and interface is a weak
relationship. It is known as Is-kind-of relationship.
E.g: A duck is flyable. Flyable can never ever be the
superclass of the duck. It just means this duck can fly. So
flyable is interface.
26
27. Notes for Interface (1)
• Because the interface is just designed to add some
behaviors or some features to classes, usually it contains
only one or two general methods. E.g.:
public interface Runnable {
void run();
}
• The reason for this is that interface is not a superclass. So
it doesn’t specify who can use its methods. Generally, its
method might be used by everyone.
27
28. Notes for Interface (2)
• By Java code conversion, the name of interface is usually
adjective. Because adjective adds some meaning to a noun.
That’s why you’ll see:
- Runnable
- Comparable
- Cloneable
- Accessible
• The interface names for event driven listener are usually ended
with Listener. E.g.
- ActionListener
- MouseMotionListener
- KeyListener
28
29. Class Design Guildlines p. 358-360
1. A class should descript a single entity or a single thing.
2. Classes are usually designed for reuse by many different
customers and developers.
3. If we want polymorphism, you have to use inheritance design
(of course, overridden method).
4. If NO need polymorphism, use composite design.
5. If a relationship is strong like apple and fruit, please use
abstract class design.
6. If a relationship is weak like apple and eatable, please use
interface design.
29
30. Last Words (1)
CB: Hi Rabbit. After I know Class Encapsulation, Inheritance,
Polymorphism, Abstract Class and Interface, I think I know
OOP. What should I do after all?
SR: Well. First, you can learn Java of course. I mean you can
understand Java faster than ever.
CB: Oh really?
SR: Yeah... Because the difficult parts of Java is to understand
OOP. I means you have to know OOP in order to learn Java.
CB: What about people claim that they can write Java programs
but they say they don’t need to know OOP.
SR: It sounds cheating, you know! Of course, it is possible if
they really work day-in day-out with Java. But they don’t know
what is going on inside. Also, it takes so much time to be able
to write Java without understand OOP.
30
31. Last Words (2)
CB: I quess so but anyway. Back to my questions, which Java
topics should I learn further?
SR: You know, Java is huge. The reason for this is because Java
wants every thing work in Java.
CB: What can work in Java?
SR: You use, for example, JavaSE for Desktop Application and
Applet. JavaEE is very big and it is for big enterprise. You can
make JSP, Servlet, Web Applications, Web Services,
JavaBean, Java Server Face and many more.
CB: Wow, I’ve never heard all of these!
SR: You can also use JavaME for mobile devices, PDA, etc.
There are always a lot more to learn! Is it scary?
31
32. Last Words (3)
CB: Oh my... It is more enormous than I’ve ever imagined.
SR: Actually, if you really want to learn them all, you will take
your whole life to learn. But ... but... you know, after OOP, the
rest of it is only how to understand and to use Java API
library.
CB: What do you mean?
SR: I mean there’s no more strange things like what is
inheritance, polymorphism, abstract class or interface.
Because you know all of it.
CB: Yes. but API...
SR: After you knew OOP, you can use Java API. For example, to
make a button clickable, you have to use an interface called
ActionListener. And them use polymorphism to make it work.
32
33. Last Words (4)
CB: Heu heu...
SR: And to use JFrame, JApplet, and MIDlet, you have
to use inheritance.
CB: Oh yeah...
SR: And something like this. The key point is to realize
which way to use this API. I mean it is to use
inheritance, polymorphism or interface?
CB: OK. I got it.
SR: One more suggestion. After you know OOP, you
should learn a specific topic in Java rather learn them
all.
33
34. Last Words (4)
CB: How can I choose?
SR: For example, if you like to work with Web Application,
please go to Serlvet, JSP and Database Programming.
CB: What about if I like to make online game.
SR: This one? You could go to Swing, Applet, Multiple
Threading and distributed computing. But it is hard one.
CB: Any thing else?
SR: Of course. You can also learn JavaME for Mobile Phone.
It is a hot topic for today. Everybody always ask me.
CB: Really. Maybe I could make a decision now. I choose
JavaME.
SR. Yehh I choose the good one. So let go get ‘em!
34