본문 바로가기

JAVA/★객체지향36

다형성 다형성: 하나의 메소드 or 클래스가 있을 때 다양한 방법으로 동작하는 것 1) overloading 2) 첫번쨰 예제를 살펴보자 B로 객체를 만드는데 데이터 타입이 A인 경우 그렇다면 오버라이딩 했을 땐 뭐가 실행될까?? === B에 있는 x가 실행됐다! 조금더 예시를 변경해보자 즉 클래스 A의 행세를 해서 A에 있는 메소드만 실행가능한데 B에 있는 메소드가 상위(A) 메소드를 오버라이딩 하면 그것을 실행한당 *****다른 예시 3) 기존에 짜던 방식으로 코딩을 했을 경우 새로운 방식으로 했을 때(다형성을 이용해보자) c1과 c2 모두 Calculator라는 데이터 형식이지만 실제로 동작했을 때 run실행 했을 때 sun과 avg구체적 구현(+와 -)은 다르다 결과값 + sum :30 + avg :15.. 2023. 3. 13.
interface // (abstract와 비슷하다 차이점 구별해두자) interface: 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 메소드들을 구현해야하는데 그렇지 않다면 컴파일도 안된다!. abstract:"하위클래스에서 상속하도록 오버라이딩 하도록 비어있는 내용의 abstract메소드 있지만 구체적인 메소드나 필드가 존재할 수 있는(오버라이딩) interface : 구체적인 로직 interface안에 포함x 반드시 본체가 없는 메소드 들만 package practice0407; abstract class A { int a; abstract void f(); } class B extends A implements C { @Override public void f() { System.out.println("배고프다"); } @Overrid.. 2023. 3. 13.
final ( <-> abstract) 사용빈도 높지는 않다 1) final 은 상속과 변경을 금지~ 2)상속하면 오류가 발생한다 2023. 3. 13.
abstract 1)abstract는 직접적으로 사용x,,, 상속해서 사용하도록 강제하는 것 ​추상 클래스는 일반적으로 객체를 생성할 수 있지만, 추상 클래스 자체로는 객체를 생성할 수 없다. 추상 클래스를 상속받는 하위 클래스를 통해 객체를 생성하여 사용. 2)사용이유?? 시그니처(껍데기만) 정의해놓고 공통적인 로직 ->> 하위클래스에서 사용자가 직접 달라지는 로직 만드는 느낌 일종의 스케치 같은 개념이다 Animal { public String kind; public abstract void sound(); } 동물(시그니처) -> 하위클래스 고양이, 개, 원숭이 예시를 보자 3)디자인 패턴 - 난이도 있어서 그냥 보는식으로~ 나중에 현타오거나 벽에 부딪힌다 싶을떄 공부하장! ​ 소프트웨어 개발 방법으로 사용되는 디.. 2023. 3. 13.