7/13

채언·2022년 7월 13일
0

1. 클래스의 상속

  • 클래스 1 은 클래스 2 를 상속받아서, 2의 기능을 그대로 사용할 수 있다. 상속 받을 때에는, class Class1(Class2): 의 형태로 쓴다. 1에서 2를 상속받아 쓸 수 있게 된다. 또, 클래스 3이 2를 상속받으면 클래스 3은 1,2의 기능을 모두 사용할 수 있다.

  • school2 클래스는 school1을 상속받아, school2로 부터 생성된 객체도 school1의 기능으로 접근이 가능하다.

2. 생성자, init(), super()

  • 객체가 생성될때, 생성자를 호출하면서 init()이 자동으로 호출된다. init()은 속성을 초기화 하며, 상속된 클래스에서 상위 클래스의 속성을 초기화하기 위해서 super()를 사용하여 간단하게 쓸 수 있다.
    super()는 상속한 상위 클래스의 기능으로 접근하는 방법으로, super(). XXXX() 을 하면 상위클래스의 XXXX()기능으로 바로 접근가능하다.

  • market 클래스는 super1클래스를 상속받았음으로 super1클래스의 기능을 사용 가능하며, 그 super1클래스의 속성값을 전달하기 위해 market 클래스 내에 super().init(초기화할변수) 구문을 작성한다. 그러면 바로 상속한 함수의 속성자리에 값이 들어가고 접근가능하게 된다.

EX) Mid 클래스를 상속받도록 Final 클래스를 만들고, 중간고사와 기말고사의 점수를 출력하는 예시

3. 다중 상속

  • 클래스를 상속할 때, 한개가 아닌 여러개의 클래스를 상속할 수 있고 하나의 클래스를 상속할때와 같이 기능을 사용할 수 있다.
  • calculator 클래스는 calc1 ,calc2 두 클래스를 상속받는다. 상위클래스에 접근하는 방법은 하나의 클래스를 상속할때 접근하듯이 레퍼런스 변수명.메소드명() 으로 접근한다.

4. 오버라이딩

  • 상속받은 하위 클래스에서, 상위클래스에서 쓰였던 같은 명의 메소드를 재정의하는것.

  • 하위 클래스 NewSchool 에서, 상위클래스 School에 있는 메소드 score를 재정의 하였고 객체를 만들어 score를 출력해보면 하위클래스에서 재정의한 형식으로 출력된다.

profile
화이팅!

0개의 댓글