Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 상위 클래스 변수를 하위 클래스 유형으로 변환하는 방법

<시간/>

상속 한 클래스가 다른 클래스의 속성을 상속하는 두 클래스 간의 관계입니다. 이 관계는 extends 키워드를 사용하여 -

로 정의할 수 있습니다.

public class A extends B{

}

속성을 상속하는 클래스를 하위 클래스 또는 하위 클래스라고 하고 속성을 상속받는 클래스를 상위 클래스 또는 상위 클래스라고 합니다.

상속에서 상위 클래스 구성원의 복사본이 하위 클래스 개체에 생성됩니다. 따라서 하위 클래스 개체를 사용하여 두 클래스의 구성원에 액세스할 수 있습니다.

상위 클래스 참조 변수를 하위 클래스 유형으로 변환

단순히 캐스트 연산자를 사용하여 상위 클래스 변수를 하위 클래스 유형으로 변환할 수 있습니다. 하지만 우선 하위 클래스 객체를 사용하여 슈퍼 클래스 참조를 생성한 다음 캐스트 연산자를 사용하여 이 (수퍼) 참조 유형을 하위 클래스 유형으로 변환해야 합니다.

예시

class Person{
   public String name;
   public int age;
   public Person(String name, int age){
      this.name = name;
      this.age = age;
   }
   public void displayPerson() {
      System.out.println("Data of the Person class: ");
      System.out.println("Name: "+this.name);
      System.out.println("Age: "+this.age);
   }
}
public class Sample extends Person {
   public String branch;
   public int Student_id;

   public Sample(String name, int age, String branch, int Student_id){
   super(name, age);
      this.branch = branch;
      this.Student_id = Student_id;
   }
   public void displayStudent() {
      System.out.println("Data of the Student class: ");
      System.out.println("Name: "+super.name);
      System.out.println("Age: "+super.age);
      System.out.println("Branch: "+this.branch);
      System.out.println("Student ID: "+this.Student_id);
   }
   public static void main(String[] args) {        
      Person person = new Sample("Krishna", 20, "IT", 1256);      
      //Converting super class variable to sub class type
      Sample obj = (Sample) person;      
      obj.displayPerson();
      obj.displayStudent();
   }
}

출력

Data of the Person class:
Name: Krishna
Age: 20
Data of the Student class:
Name: Krishna
Age: 20
Branch: IT
Student ID: 1256

예시

class Super{
   public Super(){
      System.out.println("Constructor of the super class");
   }
   public void superMethod() {
      System.out.println("Method of the super class ");
   }
}
public class Test extends Super {
   public Test(){
      System.out.println("Constructor of the sub class");
   }
   public void subMethod() {
      System.out.println("Method of the sub class ");
   }
   public static void main(String[] args) {        
      Super sup = new Test();      
      //Converting super class variable to sub class type
      Test obj = (Test) sup;      
      obj.superMethod();
      obj.subMethod();
   }
}

출력

Constructor of the super class
Constructor of the sub class
Method of the super class
Method of the sub class