클래스 2

추상클래스

추상 클래스 = 추상적인 것(new 할 수 없다) 의자 침대 = new가능 가구 = new 불가능 자 다음과같이 오버 라이딩을 했을 때 d1.speak();를 호출을 하면 d1은 Animal타입이지만 동적 바인딩을 통해서 부모 메서드를 무효화하고 자식 메서드의 speak()가 호출이 된다. 그렇다면 Animal은 내용은 없이 껍대기만 있으면 되는데 일반적인 클래스로 하면 new로 메모리에 띄울 수 있기 때문에 실수할 확률이 높아진다. 그럴 때 abstract를 붙여서 추상 클래스를 만들어주는 것이다. 다음과 같이 추상 클래스로 만들어주면 추상적인 것이기 때문에 java세상에서 new로 탄생시킬 수 없다. 그럼 Bird클래스를 추가시켜서 Animal을 다시 상속받아본다고 하면 오류가 난다. 왜 오류가 날까..

JAVA,객체지향 2021.11.26

클래스만들기/생성자/this

패키지는. java파일의 모임이다. 1. 디폴트 접근제어자(아무 접근제어자도 명시돼 있지 않을 때) = 동일한 패키지에서만 접근 가능 2. public 접근 제어자 = 모든 곳에서 접근할 수 있다. 3. private 접근 제어자 = 동일한 클래스에서만 접근 가능 4.protected 접근제어자 = 패키지 내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근 가능 클래스 = class = 설계도 class= 설계도 이기 때문에 강아지 클래스를 만들어보는데 이때 강아지의 종류인 type필드는 변경해서는 안되기 때문에 final이라는 키워드를 사용해서 변경할 수 없도록 해주었다. 하지만 클래스에서 필드를 저렇게 초기화시켜 줘 버리면 해당 클래스는 위와 같은 특징을 가진 강아지 한 마리만 만..

JAVA,객체지향 2021.11.20