JAVA

6일차

구자룡 2021. 3. 11. 17:56
//AA라는 사람이 b,c라는 사람에게 우리가 aaa메소드를 만들어서 제품을 구성하자.

class A{

    public void aaa() {

       System.out.println("AAA");

    }
}

class B{

    public void Aaa() {

}

}

class C {

    public void aAa() {
    }

}

public class Exam14 {

    public static void main(String[] ar) {

       A ap=new A();

       ap.aaa();

       B bp=new B();

       bp.Aaa();

       C cp=new C();

       cp.aAa();

    }
}

결과:

aaa클래스

abstract class YY{

    public abstract void aaa();//추상메소드를 만들면 반드시 추상이라고 정의를 해야함.

    //메소드의 내용부가 없어야됨.

    //public void aaa(){내용부}

    //추상클래스를 가지고 객체생성을 할 수 없음.
}
class BB extends YY{//위의것 AA클래스의 똑같은 메소드로써 이것은..오버라이딩해야됨

    public void aaa() {

       System.out.println("BBB");
    }  
}
class CC extends YY{//위의것 AA클래스의 똑같은 메소드로써 이것은..오버라이딩해야됨
    public void aaa() {
       System.out.println("CCC");
    }
}
public class Exam01 {
    public static void main(String[] ar) {
//     YY yp=new YY();//추상클래스이기때문에 만들수없음.
       BB bp=new BB();
       CC cp=new CC();
       YY yp=new BB();//부모클래스가(이름) 자식을 관리하는것에 대한의미임.객체생성이 가능함.BBB
       YY yp1=new CC();//부모클래스가(이름) 자식을 관리하는것에 대한의미임.객체생성이 가능함.CCC
       yp.aaa();//부모이름으로 자식을 제어하는 메소드인경우는 하위의 메소드를 선택함.이것이 다형성.
       yp1.aaa();

    }    
    }

결과:

BBB
CCC

interface AAA{//다중상속을 위한 최적의 멤버필드를 가지게 됨 by interface
    //interface클래스의 정의된 멤버필드는 모두 static final형태로 선언됨.
    public static int x=100;
    public static final int w=0;
    public final int y=200;
    public int z=300;
//  void ddd() {}
    public static class Inner{}
    public abstract void aaa();
    public void bbb();
    void ccc();  
}

public class Exam02 {
    public static void main(String[] ar) {
      System.out.println("x="+AAA.x);//모두static으로 선언되었기때문임.
       System.out.println("w="+AAA.w);
       System.out.println("y="+AAA.y);
       System.out.println("z="+AAA.z);
//      AAA.w=10;//final형태로 정의되어져있기때문에 변경이불가.
//      AAA.x=1000;
//      AAA.y=40;
//      AAA.z=55;

    }
}

결과:

x=100
w=0
y=200
z=300

public interface Exam04 {
int x=100;
void disp();

}



public class Exam05 implements Exam04 {

    public void disp() {

       System.out.println("x="+x);

    }

    public static void main(String[] ar) {

       Exam04 ap=new Exam05();

       ap.disp();

    }

 

}

결과:

x=100

class Point {
    private int x,y;
    public Point(int x , int y) {
       this.x = x;
       this.y = y;
    }
}
public class Exam06 {
    public static void print(Object p) {
        System.out.println(p.getClass().getName());
       System.out.println(p.hashCode());
       System.out.println(p.toString());
       System.out.println(p);
    }
    public static void main(String[] ar) {
       Point p = new Point(2,3);
       print(p);
    }
}

 결과:

Point
1101288798
Point@41a4555e
Point@41a4555e

 

'JAVA' 카테고리의 다른 글

8일차  (0) 2021.04.05
7일차  (0) 2021.03.12
5일차  (0) 2021.03.10
4일차  (0) 2021.03.09
3일차  (0) 2021.03.08