We often encounter situation where there is a need to store a value of one type into a variable of another type. In such situation, we must cast the value to be stored by processing it. Java provides three ways type cast
Example:
byte b=75;
int a =b;
are valid statements. Here the byte type is converting into integer type.
Type variable-1 = (Type) variable-2;
Examples:
int m=50;
byte n=(byte)m;
are valid statements in java. Here the int type is converting into byte type. In this process there may be chance of losing data. The following are various possible conversions where explicit type casting is required
- Implicit type cast
- Explicit type cast
- Casting references
Implicit type cast
When we assign a smaller value to another type of bigger value this type of type casting is possible. Compiler is the responsible to perform this type casting.It is also called widening or promotion or upcasting. In this type of typecasting there is no matter of data loss. This is also know as automatic type casting. The following is possible in javaExample:
byte b=75;
int a =b;
are valid statements. Here the byte type is converting into integer type.
Explicit type cast
There may be situation where we assign a large variable type to small type. It is the programmer responsibility to handle this type situation. Don't worry about this, Java provides another way to cast large variable type to small type by using a cast operator. It looks like following format
Type variable-1 = (Type) variable-2;
Examples:
int m=50;
byte n=(byte)m;
are valid statements in java. Here the int type is converting into byte type. In this process there may be chance of losing data. The following are various possible conversions where explicit type casting is required
Casting One Class to other Class or Interface ( Casting References)
In java it is also possible to cast one class to other class or interface when there is a relation ship exist between them like inheritance. For example you can convert a sub class object reference into super class object. But we can't convert one class object reference to another without any relation between them. There are two ways to cast references: 1) Generalization 2) Specialization.Generalization
Generalization is the process where a sub class is promoted to a super class, and hence becomes more general. Generalization needs widening or up-casting. For example, consider the following java programclass one
{
void display1()
{
System.out.println(" super class method");
}
}
class two extends one
{
void display1()
{
System.out.println(" sub class method");
}
}
class cast
{
public static void main( String args[])
{
one obj1; // obje1 is super class reference
obj1= (one) new two(); // obj1 is referencing to sub class object and it widening
obj1.diaply1();
}
}
Specialization
Specialization is the process where a super class is narrowed down to a sub class. Specialization needs narrowing or down-casting.class one
{
void display1()
{
System.out.println(" super class method");
}
}
class two extends one
{
void display1()
{
System.out.println(" sub class method");
}
}
class cast
{
public static void main( String args[])
{
two obj2; // obje2 is sub class reference
obj2= (one) new one(); // obj2 is referencing to super class object and it is narrowing
obj2.diaply1();
}
}
0 comments :
Post a Comment
Note: only a member of this blog may post a comment.