목록분류 전체보기 (639)
충분히 쌓여가는
인터페이스는 public static final 특성을 갖는 불변의 상수 필드를 멤버로 가질 수 있다 public static final 타입 상수명 값; 인터페이스에 선언된 필드는 모두 public static final 특성을 갖기 때문에 public static final을 생략하더라도 자동적으로 컴파일 과정에서 붙게 된다 상수명은 대문자로 작성하되, 서로 다른 단어로 구성되어 있을 경우 언더바(_)로 연결하는 것이 관례 상수는 구현 객체와 관련 없는 인터페이스 소속 멤버이므로 인터페이스로 바로 접근해서 상수값을 읽을 수 있다 package ch08.sec03; public interface RemoteControl { int MAX_VOLUME = 10; int MIN_VOLUME = 0; } p..
Java 15부터 무분별한 자식 클래스 생성을 방지하기 위해 sealed 클래스가 도입되었다 Person의 자식 클래스는 Empolyee와 manager만 가능하고, 그 이외의 자식 클래스가 될 수 없도록 Person을 봉인된 클래스로 선언할 수 있다 sealed 키워드를 사용하면 permits 키워드 뒤에 상속 가능한 자식 클래스를 지정해야 한다 public sealed class Person permits Employee, Manager { ... } Person 클래스를 상속하는 Employee와 Manager는 final 또는 non-sealed 키워드로 선언하거나 sealed 키워드를 사용해서 또 다른 봉인 클래스로 선언해야 한다 public final class Employee extends ..
추상 메소드 선언 abstract가 붙고 중괄호 {}가 없다 abstract 리턴타입 메소드명(매개변수, ...); public abstract class Animal { abstract void sound(); } !추상 메소드는 자식 클래스에서 반드시 오버라이딩해서 실행 내용을 채워야 한다 package ch07.sec10.exam02; public abstract class Animal { public void breathe() { System.out.println("숨을 쉽니다"); } public abstract void sound(); } package ch07.sec10.exam02; public class Dog extends Animal { @Override public void soun..
객체를 생성할 수 있는 클래스를 실체 클래스라고 한다면, 이 클래스들의 공통적인 필드나 메소드를 추출해서 선언한 클래스를 추상 클래스라고 한다 추상 클래스는 실체 클래스의 부모 역할을 한다 따라서 실체 클래스는 추상 클래스를 상속해서 공통적인 필드나 메소드를 물려받을 수 있다 추상 클래스는 실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 new 연산자를 사용해서 객체를 직접 생성할 수 있다 추상 클래스는 새로운 실체 클래스를 만들기 위한 부모 클래스로만 사용된다 즉, 추상 클래스는 extends 뒤에만 올 수 있다 추상 클래스 선언 public abstract class 클래스명 { //필드 //생성자 //메소드 } 추상 클래스도 필드, 메소드를 선언할 수 있다 자식 객체가 생성될 때 s..