• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

12:40 부분 ani=new Cat( ); 질문 있습니다.

22.08.11 17:45 작성 조회수 139

0

Animal ani = new Dog();

ani.eat();

ani=new Cat();

ani.eat();

이 코드에서 ani=new Cat(); 이 부분은 왜

Animal ani = new Dog(); 부분처럼 Animal 을 안쓰는 건가요 ? 

ani=new Cat(); 이 부분을

Animal ani = new Cat(); 으로 하면은 안되는건가요 ?

답변 2

·

답변을 작성해보세요.

2

int a=10;

a=20;

이것과 비슷한것입니다. 처음에 a에 10을 저장하고 다음에 새롭게 a에 20을 저장하는 것처럼요.

int a=10;

int a=20; × 위에 a가 선언되어서 이렇게 쓰면 않되겠죠?

아니면 아래처럼 변수이름을 a1,a2로 다르게 선언해서 사용해야되구요.

int a1=10;

int a2=20;

Dog와 Cat도 Animal이 부모이기때문에 동일하다고 보면됩니다.

Aninal ani=new Dog();

ani=new Cat();

아니면 아래처럼 ani1 ani2처럼 변수를 다르게 사용하면 됩니다.

Animal ani1=new Dog();

Animal ani2=new Cat();

 

mumum3521님의 프로필

mumum3521

질문자

2022.08.12

감사합니다! 제가 원하는 눈높이 교육이여서 유익하게 듣고 있습니다.

1

Animal ani = new Dog();

ani.eat();

ani=new Cat();

ani.eat();

아 위에 이미 Animal ani=new Dog()가 선언 되어있어서 

다시 Animal ani=new Cat()으로 하면 중복 선언이 되어서 ani=new Cat()으로 한겁니다.

그리고 Dog와 Cat의 부모가 Animal이어서 변수 하나로 받아서(ani) eat()를 호출한거구요~

mumum3521님의 프로필

mumum3521

질문자

2022.08.11

상속관계여서 ani = new Cat() 이 가능하다는건가요?! Animal ani=new Cat(); 이 중복 선언이면, ani=new Cat() 이렇게 선언하는 것은 뭐라고 하는건가요 ?!