runtime polymorphism in java :: futureX
Runtime polymorphism or dynamic method dispatch is a process in which a call to an overridden method is resolved at runtime rather than at compile-time.In this process, an overridden method is called through the reference variable of a superclass. The determination of the method to be called is based on the object being referred to by the reference variable.


UPCASTING :
When reference variable of Parent class refers to the object of Child class, it is known as upcasting.
upcasing in java :: futureX
For example:


class Animal{
void eat(){System.out.println("eating food");}
}

class Human extends Animal{
void eat(){System.out.println("eating delicious food");}

public static void main(String args[]){
Animal A=new Human();
A.eat();
}
}

Example of runtime polymorphism


class Bike{
   void run(){System.out.println("running");}
 }
 class Splender extends Bike{
   void run(){System.out.println("running safely with 60km");}

   public static void main(String args[]){
     Bike b = new Splender();//upcasting
     b.run();
   }
 }


In this example, we are creating two classes Bike and Splendar. Splendar class extends Bike class and overrides its run() method. We are calling the run method by the reference variable of Parent class. Since it refers to the subclass object and subclass method overrides the Parent class method, subclass method is invoked at runtime. Since it is determined by the compiler, which method will be invoked at runtime, so it is known as runtime polymorphism.


Rule: Runtime polymorphism can't be achieved by data members.

class Bike{ int speedlimit=90; } class Honda extends Bike{ int speedlimit=150; public static void main(String args[]){ Bike obj=new Honda(); System.out.println(obj.speedlimit);//output 90 } }

JAVA TUTORIALS HOMEPAGE



The final keyword in java is used to restrict the user. The final keyword can be used in many context. Final can be:
final keyword in java :: futureX

  • variable
  • method
  • class


Final variable :
If you make any variable as final, you cannot change the value of final variable(It will be constant).

//can't assign a value to final variable class Simple{ final int a=50; void change(){ a=100; //CTE } public static void main(String args[]){ Simple S=new Simple(); S.change(); System.out.println(S.a); } }

Final method :
If you make any method as final, you cannot override it.

//overriden method is final CTE class A{ final void m(){System.out.println("hello");} } class Simple extends A{ void m(){System.out.println("java");} public static void main(String args[]){ Simple S=new Simple(); S.m(); } }

Final class :
If you make any class as final, you cannot inherit it.

//cant inherit from final class CTE final class A{} class Simple extends A{ public static void main(String args[]) {} }

super is a reference variable that is used to refer immediate parent class object.

Uses of super Keyword:

  • super is used to refer immediate parent class instance variable.
  • super() is used to invoke immediate parent class constructor.
  • super is used to invoke immediate parent class method.
1.super is used to refer immediate parent class instance variable.

Problem without super keyword

class Vehicle{ int speed=50; } class Bike extends Vehicle{ int speed=100; void display(){ System.out.println(speed);//will print speed of Bike } public static void main(String args[]){ Bike b=new Bike(); b.display(); } }

In the above example Vehicle and Bike both class have a common property speed. Instance variable of current class is refered by instance bydefault, but I have to refer parent class instance variable that is why we use super keyword to distinguish between parent class instance variable and current class instance variable.

Solution by super keyword

class Vehicle{ int speed=50; } class Bike extends Vehicle{ int speed=100; void display(){ System.out.println(super.speed);//will print speed of Vehicle now } public static void main(String args[]){ Bike b=new Bike(); b.display(); } }

2.super is used to invoke parent class constructor.

class Vehicle{ Vehicle(){System.out.println("Vehicle is created");} } class Bike extends Vehicle{ Bike(){ super();//will invoke parent class constructor System.out.println("Bike is created"); } public static void main(String args[]){ Bike b=new Bike(); } }

3. super can be used to invoke immediate parent class method.

class Person{ void message(){System.out.println("welcome");} } class Student extends Person{ void message(){System.out.println("welcome to java");} void dislay(){ message();//will invoke current class message() method super.message();//will invoke parent class message() method } public static void main(String args[]){ Student s=new Student(); s.display(); } }

JAVA TUTORIALS HOMEPAGE
Pulmon is a great application which brings Windows 8 like Metro UI Widgets in Windows 7. It gives you various options to add as tiles such as Mozilla Aurora, Storage etc. Mozilla Aurora widget adds a beautiful tile on desktop. Clicking on it will open Aurora. 


Updates in Pulmon 2.0:
1)Splash Screen has been added to Pulmon. Now Pulmon will start with a metro splash screen
2)Changed Background – Background color of Pulmon has been changed to the metro color “Dodger Blue”
3)They worked on Pulmon 2.0 a lot and fixed some issues
4)Metro UI Colors –  tried their best to select master Metro UI colors for tiles. Now tiles have Metro UI colors
5)Improved Stability – In the previous release, Microsoft Office Suite Tile and BUILD Tile were unstable. But now they are stable and can be used as you use other tiles
6)It have added a “Get Involved!” button in Pulmon to directly involve in Pulmon Project. By pressing this button, Pulmon will open the default E-mail client. You, then, can send us a mail about involvation
7)The sizes of tiles have been decreased to increase flexibility for the users
8)It have implented Windows 8 style tiles e.g. Internet Explorer, Control Panel and BUILD tiles
9)Now the default background is of Windows 8 default start screen background
10)You will get a Metro Menu in fullscreen mode. Just click on User Avatar and see the action. It offers to restart and shutdown the computer and it also offers to change user avatar
11)Storage tile has been updated and now you can select any drive by using Storage Options in right click menu
“12)Zuro” tile is a new tile for Pulmon. It opens Zuro (A web browser based on Metro UI and Immersive UI) when a user double-click on it
13)“Desktop” tile shows the current desktop background
14)Added error handling code for the exceptions
15)“Mozilla Firefox” tile is now “Mozilla Aurora” tile. Works only with Mozilla’s Aurora Channel
16)They have updated Shutdown Manager tile and System Information tile. They were looking ugly but now they are looking very good with a brand new look.
17)It just fixed some tool-tip issues
18)It applied Metro UI on Storage Settings and Zuro Settings.

Note: Below are mentioned only few widgets. The newest version has more widgets than the described below. 

Widgets: 
User- Clicking “User” tile will open a User Widget. If you want to open User Accounts, double-click on the green place of tile or double-click on User Avatar. There are many tweaks available for user tile. Right click on the tile and click options. You can choose “Take User Avatar from Windows System” or choose custom avatar.
Control Panel- Clicking Control Panel tile will load control panel widget. You can open Control Panel by clicking on its tile. Its currently not more than a tile. It will get some features in next versions.
Clock- Pulmon will provide you a very cool widget “Clock”. It will show you time, month and day of the week. Some new tweaks will be provided to you in the next versions
Shutdown Manager- It’s a very easy to use widget which will allows you to control over you pc with one click.Shutdown,Restart, Log Off and Hibernate’s Options are given. Please note that  some of the features are not working.
Webby- Webby is another good widget which provides you quick access to tech sites like The Windows Club, IntoWindows,WinMatrix, AskVG etc.. 

How to Use:

1.Download and Run the application
2.You will see two groups “Add Tiles” and “Remove Tiles”
3.Click a tile in Add Tiles group e.g Control Panel Tile
4.It will load Control Panel tile and the icon of Control Panel will be disappeared from “Add Tiles” group and start appearing in “Remove Tiles” group
5.Click the Control Panel tile in Remove Tiles group will remove it  








Inheritance is a mechanism in which one object acquires all the properties and behaviour of another object. The idea behind inheritance is that you can create new classes that are built upon existing classes. When you inherit from an existing class, you reuse (or inherit) methods and fields, and you add new methods and fields to adapt your new class to new situations.Inheritance represents the IS-A relationship.



Why use Inheritance?

  • for method overriding
  • for code reusability
Syntax of Inheritance

class Subclass-name  extends Superclass-name
{
//methods and fields
}


The keyword extends indicates that you are making a new class that derives from an existing class.
In the terminology of Java, a class that is inherited is called a superclass. The new class is called a subclass.

types of inheritance:
















 example of single level inheritance :
class Animal{
void eat(){System.out.println("eating food");}
}


class Dog extends Animal{

void bark(){System.out.println("barking");}

public static void main(String args[]){

Dog d=new Dog();
d.bark();
d.eat();

}
}



Que) Why multiple inheritance is not supported in java?   To reduce the complexity and simplify the language,multiple inheritance is not supported in java.


                            JAVA TUTORIALS HOMEPAGE
Copyright © 2013 futureX | Blogger Template by Clairvo