i
Understanding Requirement: Why Java
Why Java is important to the Internet
Java On Linux
First Java Program
Java Virtual Machine Architecture
Class Loading Process by Class Loaders
Role Of Just In Time Compiler
Execution Engine
Data Types
Variables
Arrays
Operators
Arithmetic Operations
Shifting Operators
Logical Operators
Control Statements
Object Oriented Paradigms
The Three OOP principles
Looping Statements
JAVA Class Fundamentals
Command Line Arguments
Static Initialize
Creating an Object
Instance Variable Hiding
Overriding and Overloading of methods
Understanding The Access Controls
Nested And Inner Classes
Dynamic Method Dispatching
Abstract Classes
Using Final To Prevent Overriding & Inheritance
Garbage Collection
Defining a package
Understanding Classpath
Access Protection
Importing packages
Defining and Implementing An Interface
Abstract classes vs Interfaces
Generics
Annotations
Varargs
Foreach
Fundamentals Of Exception Handling
Types Of Exceptions
Learning exception handling, try-catch, multiple catch clauses
Nested Try Statements
Throw, Throws and Finally
Custom Exceptions
Java Thread Model
Creating A Thread
Context Switching
Synchronization: Methods And Statements
Inter-thread Communication
We have already mentioned few times that abstraction is process of showing only the functionality to the users and hiding the internal implementation of the it. i.e. what it works (showing), how it works (hiding). Both abstract class and interface are used for abstraction.
Let’s visit the differences between interfaces and abstract classes as they have couple of them:
Type of methods: Interface has only abstract methods. Abstract class has ability to have abstract and non-abstract methods together. From Java 8, interfaces can have default and static methods also.
Final Variables: By default variables in interface are final. An abstract class can have non-final variables.
Type of variables: Abstract class has possibility to have non-final, final, non-static and static variables. Interface has only static and final variables.
Implementation: Interface can’t provide the implementation of abstract class. Abstract class has ability to provide the implementation of interface.
Inheritance vs Abstraction: Interface can be implemented using keyword “implements” while abstract class can be extended using keyword “extends”.
Multiple implementations: An interface can extend more than one interfaces, while an abstract class can extend only one Java class and implement multiple interfaces.
Accessibility of Data Members: Interface members are public while in Abstract class we can have private, protected and public members.
Don't miss out!