JAVA

super, this 구분

헤롱헤롱이 2020. 4. 22. 10:24
package test01;
class SuperE
{


      int x = 10;
      SuperE(int a)
      {
            x = a;
      }
      void superEMethod()
      {
            System.out.println("superEMethod exe");
            System.out.println("this.x = " + this.x);
      }
      
      public void loadTest()
      {
            System.out.println("superTest 실행");
      }
}
class SubE extends SuperE
{
      int y = 20;
      SubE(int a, int b)
      {
            super(a);
            y = b;
      }
            
      void subEMethod()
      {
            System.out.println("subEMethod exe");
            System.out.println("this.x = " + this.x);
            System.out.println("super.x = " + super.x);
      }
      
      public void loadTest()
      {
            System.out.println("subTest 실행");
      }
      
}
class SubsubE extends SubE
{
      int z = 30;
      SubsubE()
      {
            this(10, 20, 30);
      }
      SubsubE(int a, int b, int c)
      {
            super(a, b);
            z = c;
      }
      void subsubEMethod()
      {
            System.out.println("subsubEMethod exe");
            System.out.println("this.x = " + this.x);
            System.out.println("super.x = " + super.x);
      }
      
      public void loadTest()
      {
            super.loadTest();
      }
      
}
public class TestExtend
{
      public static void main(String[] args)
      {
            // TODO Auto-generated method stub
            SubsubE ss1 = new SubsubE();
            SubsubE ss2 = new SubsubE(40, 50, 60);
            
            SubE ss3 = new SubE(30, 40);
            
            ss3.loadTest();
            /*System.out.println(ss2.x);
            System.out.println(ss2.y);
            System.out.println(ss2.z);
            ss2.superEMethod();
            ss2.subEMethod();
            ss2.subsubEMethod();
            
            
            System.out.println();
            System.out.println(ss1.x);
            System.out.println(ss1.y);
            System.out.println(ss1.z);
            ss1.superEMethod();
            ss1.subEMethod();
            ss1.subsubEMethod();*/
            
            ss2.loadTest();
      }
}