Professional Documents
Culture Documents
055CS75 Unit 2
055CS75 Unit 2
PROGRAMMING IN JAVA
INHERITANCE
• Inheritance in Java is a mechanism in which one object acquires all
the properties and behaviors of a parent object.
• It is an important part of OOPs (Object Oriented programming
system).
• The idea behind inheritance in Java is that you can create new classes
that are built upon existing classes.
• When you inherit from an existing class, you can reuse methods and
fields of the parent class. Moreover, you can add new methods and
fields in your current class also.
• Inheritance represents the IS-A relationship which is
also known as a parent-child relationship.
• SYNTAX
.
class Subclass-name extends Superclass-name
{
//methods and fields
}
EXAMPLE
class Employee{
float salary=40000;
}
class Programmer extends Employee{
int bonus=10000;
public static void main(String args[]){
Programmer p=new Programmer();
System.out.println("Programmer salary is:"+p.salary);
System.out.println("Bonus of Programmer is:"+p.bonus);
}
}
Super Keyword in Java
• The super keyword can also be used to invoke parent class method.
• It should be used if subclass contains the same method as parent class.
• In other words, it is used if method is overridden.
class Animal{
void eat()
{
System.out.println("eating...");
}
}
class Dog extends Animal{
void eat(){
System.out.println("eating bread...");}
void bark(){System.out.println("barking...");}
void work(){
super.eat();
bark();
}
}
class TestSuper2{
public static void main(String args[]){
Dog d=new Dog();
d.work();
}}
• In the above example Animal and Dog both classes have eat() method
if we call eat() method from Dog class, it will call the eat() method of
Dog class by default because priority is given to local.
• To call the parent class method, we need to use super keyword.
super is used to invoke parent class constructor.
• If subclass (child class) has the same method as declared in the parent
class, it is known as method overriding in Java.
• In other words, If a subclass provides the specific implementation of
the method that has been declared by one of its parent class, it is
known as method overriding.
Usage of Java Method Overriding
• 1) The method must have the same name as in the parent class
• 2) The method must have the same parameter as in the parent class.
• 3) There must be an IS-A relationship (inheritance).
Java Program to illustrate the use of Java Method Overriding
//Creating a parent class.
class Vehicle{
//defining a method
void run(){System.out.println("Vehicle is running");}
}
//Creating a child class
class Bike2 extends Vehicle{
//defining the same method as in the parent class
void run(){System.out.println("Bike is running safely");
}
public static void main(String args[]){
Bike2 obj = new Bike2();//creating object
obj.run();//calling method
}
}
Runtime Polymorphism in Java
While method overriding is one of Java’s most powerful features, there will be
times when you will want to prevent it from occurring. To disallow a method
from being overridden, specify final as a modifier at the start of its
declaration. Methods declared as final cannot be overridden.
The following fragment illustrates final:
class A {
final void meth() {
System.out.println("This is a final method.");
}
}
class B extends A {
void meth() { // ERROR! Can't override.
System.out.println("Illegal!");
}
}
• Because meth( ) is declared as final, it cannot be overridden in B. If
you attempt to do so, a compile-time error will result.
Using final to Prevent Inheritance
• The Object class is the parent class of all the classes in java by default.
• In other words, it is the topmost class of java.
Methods of Object
class
Method Description
//save as Simple.java
package mypack;
public class Simple{
public static void main(String args[]){
System.out.println("Welcome to package");
}
}
How to compile java package
• javac -d directory javafilename
• For example
• javac -d . Simple.java
• The -d switch specifies the destination where to put the
generated class file. You can use any directory name like
/home (in case of Linux), d:/abc (in case of windows) etc. If
you want to keep the package within the same directory, you
can use . (dot).
How to run java package program
To Compile: javac -d . Simple.java
To Run: java mypack.Simple
How to access package from another
package?
• There are three ways to access the package from outside the package.
• import package.*;
• import package.classname;
• fully qualified name.
Using packagename.*
• If you use package.* then all the classes and interfaces of this package
will be accessible but not subpackages.
• The import keyword is used to make the classes and interface of
another package accessible to the current package.
Example of package that import the packagename.*
•//save by A.java
•package pack;
•public class A{
• public void msg(){System.out.println("Hello");}
•}
•//save by B.java
•package mypack;
•import pack.*;
•class B{
• public static void main(String args[]){
• A obj = new A();
• obj.msg(); }
•}
Using packagename.classname
• If you import package.classname then only declared class of this package will be accessible.
• Example of package by import package.classname
• //save by A.java
•
• package pack;
• public class A{
• public void msg(){System.out.println("Hello");}
• }
• //save by B.java
• package mypack;
• import pack.A;
•
• class B{
• public static void main(String args[]){
• A obj = new A();
• obj.msg();
• }
• }
Using fully qualified name
• If you use fully qualified name then only declared class of this package
will be accessible. Now there is no need to import. But you need to
use fully qualified name every time when you are accessing the class
or interface.
• It is generally used when two packages have same class name e.g.
java.util and java.sql packages contain Date class.
//save by A.java
package pack;
public class A{
public void msg(){System.out.println("Hello");}
}
//save by B.java
package mypack;
class B{
public static void main(String args[]){
pack.A obj = new pack.A();//
using fully qualified name
obj.msg();
}
Interface in Java
1) Checked Exception
• The classes which directly inherit Throwable class except
RuntimeException and Error are known as checked exceptions e.g.
IOException, SQLException etc. Checked exceptions are checked at
compile-time.
2) Unchecked Exception
• The classes which inherit RuntimeException are known as unchecked
exceptions e.g. ArithmeticException, NullPointerException,
ArrayIndexOutOfBoundsException etc. Unchecked exceptions are not
checked at compile-time, but they are checked at runtime.
3) Error
• Error is irrecoverable e.g. OutOfMemoryError, VirtualMachineError,
AssertionError etc.
Java Exception Keywords
try
catch
finally
throw
throws
try
• try{
• //code that may throw an exception
• }finally{}
Java Multi-catch block