Java: Type casting of objects

Java can cast objects from inherited classes.

class Acast {
	int a = 1;
}

class Bcast extends Acast {
	int b = 2;
}

class Ccast extends Bcast {
	int c = 3;
}

class TestCasting {
	public static void main(String args[]) {
		Acast refA; //Declare object refA of type Acast
		//Create object of Ccast class in object reference variable refA of type of Acast
		//If there is no inheritance, an error will occur.
		refA = new Ccast();
		System.out.println("the value of refA.a: " + refA.a);
	}
}
object type conversion example 1
//Example of error occurrence 1
class Acast {
	int a = 1;
}

class Bcast extends Acast {
	int b = 2;
}

class Ccast extends Bcast {
	int c = 3;
}

class TestCasting {
	public static void main(String args[]) {
		Acast refA; //Declare object refA of type Acast
		//Create object of Ccast class in object reference variable refA of type of Acast
		//If there is no inheritance, an error will occur.
		refA = new Ccast();
		System.out.println("the value of refA.a: " + refA.c); //Attempting to access c, a member of the Ccast class, generates an error
	}
}
object type conversion example 2
//Example of error occurrence 2
class Acast {
	int a = 1;
}

class Bcast extends Acast {
	int b = 2;
}

class Ccast extends Bcast {
	int c = 3;
}

class TestCasting {
	public static void main(String args[]) {
		Ccast refC = new Acast(); //Error occurred
		System.out.println("the value of refC.a: " + refC.a);
	}
}
object type conversion example 3
class A {
	void callme() {
		System.out.println("Executing the callme() method of class A");
	}
}

class B extends A {
	void callme() { //Overridden method
		System.out.println("Execute class B's callme() method");
	}
}

class C extends A {
	void callme() {
		System.out.println("Executing class C's callme() method");
	}
}

class OverridingCast {
	public static void main(String args[]) {
		A r = new A();
		r.callme();
		r = new B();
		r.callme();
		r = new C();
		r.callme();
	}
}
object type conversion example 4

Leave a Reply

Your email address will not be published. Required fields are marked *

Latest Post

  • 8 things you need to think about for work-life balance
    View on Youtube Image: juliezhuo.com who works as a design VP for Facebook, presented 8 ways for work and life balance in her article “The
  • 10 special abilities of Smartphone
    View on Youtube No matter where you go or what you do, your smartphone is always with us. We use the internet with a smartphone,
  • Java: abstract class, abstract method
    An abstract class in Java is a class that declares an abstract function to be implemented in a subclass as an abstract method. An abstract
  • Java: inheritance and constructors
    When an object is created from an inherited class, the constructor of the superclass is performed before the constructor of the subclass. That is, when
  • Java reserved words: super, final
    super is a Java reserved word that is used to access member variables or methods of a superclass that is obscured by a subclass. Access
  • Java: finalize method and garbage collection
    The Java Virtual Machine(JVM) automatically performs garbage collection for objects that are no longer needed for efficient system operation. At this point, the JVM calls
  • Java: Method overloading
    Method overloading is the same concept as constructor overloading. That is, you can use methods of the same name in the same class, but methods
  • Java final variable
    You can specify an end variable using the reserved word final. The final variable represents a constant value that can not be changed. Typically, final
  • Java class variables
    Class variables are declared with static and have the concept of global variables. Class variables are used for the following purposes. Object references and object
  • Member variables in Java
    Java’s member variables are all declared outside the methods in the class and represent the properties that the object can have. Member variables consist of