티스토리 뷰

카테고리 없음

자바 상속

무한경쟁시대 2021. 7. 16. 09:34 댓글확인

부모클래스에서 protected로 설정해둔 변수는

자식클래서에서 접근 가능하다.

 

보통은 상속을 생각하고 클래스를 만들지 않기 때문에 private를 많이 쓴다.

 

set get이런 식으로 접근하는 것을 간접접근이라 한다.

 

조부모 클래스, 부모 클래스, 자식클래스 있을 때

자식은 상위클래스 모두를 가지고 있다.

생성자는 조부모, 부모, 자식 모두 실행된다.

 

조부모 또는 부모에서 매개변수 있는 생성자 있는 경우 자식은 매개변수 없는 것을 못쓴다.

그럴 땐, 매개변수없는 디폴트를 조부모에 해주면 된다.

implicit super constructor A() is undefined.

그러면 조부모 매개변수 있는 경우 조부모를 수정 못하는 경우에는

부모에서는 명시해줘야하는데 super A(int x) 이런식으로 해주면 된다.

 

업캐스팅(main에서 진행)

Person 클래스 ← Student클래스

class Person{...}

class Student extends Person{...}

 

Student s = new Student();

Person p = s; 포인터(?) 객체 변수에다가 자식을 부모도 참조하도록 한다(?)

p에다가 s를 집어넣는 느낌~~~

위로 가는 것을 일반화(추상화), 밑으로 가는 것을 구체화.

대신에 업캐스팅 이후에는 내가 가진 것을 사용하면 에러~ p.grade = "A"(grade는 내것인데 업캐스팅 이후 컴파일안됨)

 

다운캐스팅

student s = (Student)p;

 

instanceof연산자

 

for루프 돌릴 때 i는 메서드 바로 위에 적고 나머지는 한 줄씩 띄운다.

아래는 추상화 링크

https://aileen93.tistory.com/107

 

[JAVA] 추상(abstract) 클래스와 인터페이스(interface) 클래스

추상(abstract) 클래스와 인터페이스(interface) 클래스 1. 추상  클래스와  추상 메소드란? 추상클래스란 말 그대로 추상적으로 밖에 그려지지 않은 클래스라고 한다. 즉, 클래스가 전체적인 구성을

aileen93.tistory.com

abstract void add( ); 이 메서드의 클래스도 당연히 abstract 클래스이다.

자기자신은 객체를 못 만든다.

---------------------

class B extends A

(API들어가면 .. GUI)

B b1 = new B( )

b1.add;

------------------------

추상클래스는 추상메서드가 중요한 것이다.

abstract void add( ) {  }

추상화는 부모클래스는 존재는 하지만 필요없는 존재가 되고,

기능을 쓰려면 자식클래스를 부르도록 하는 것이다.

 

오버라이딩 활용(Linked List)

 

자기순환참조 recursive

 

class Shape

{

  public Shape next;

  public Shape()

    next = null;

  {

 

}

 

Shape p = start;

while( p!=null)

{

  p.draw();

  p=p.next;

}

최근에 올라온 글
최근에 달린 댓글
방문자수
  • Total :
  • Today :
  • Yesterday :

세무직 공무원, 세무사1차 대비 블로그