Java13 Java Interface Java Interface 자바를 하면서 추상 클래스와 인터페이스의 차이에 대해서 항상 고민 해왔다. 추상클래스는 상속관계에서 자주 사용되고 정의 되지 않은 메소드를 자식 클래스에서 오버라이드하여 재정의한다. 이때 오버라이드 해도 되고 그렇지 않아도 상관없다 오버라이드 하지 않았을때는 자동으로 부모클래스의 메소드를 정의하게된다. 하지만 반대로 인터페이스는 모든 메소드들이 추상클래스로 되어 있으며 모든 메소드들을 오버라이드 하여야 한다 (자바 1.8부터는 default 접근지정자로 모든 메소드를 implements 한 클래스에서 재정의 하지 않아도 된다.) 여기서 가장 큰 차이점은 추상클래스는 다중상속이 되지 않는다. 인터페이스는 다중상속이 가능하다. 일반적인 이론이지만 위의 애기를 듣고는 감이 오질 않는.. 2015. 7. 16. Java 추상 클래스 (abstract class) Java 추상 클래스에서 몰랐던 부분이 있었다. 추상 클래스는 객체 생성을 하지 못한다는 것이다. 실무에 있었지만 실제로 추상클래스를 내가 직접 구현해서 써본적이 없었다. 내가 알고 있는건 추상메서드가 하나라도 존재하면 추상클래스가 된다. abstract class A { 멤버변수; 일반메소드(){} 추상메소드(); } 현재 Main 에서 A a = new A(); 가 불가하다. 단 객체생성은 불가하지만 참조현 변수의 데이터형으로는 사용 할 수 있다. A a; 2015. 7. 16. Java 메소드 오버라이딩 Method Overriding(메소드 오버라이딩)이란? 몇가지 전제 조건이 있다. 1. 상속이 전제 되어야 한다. 2. 메소드 이름이 반드시 같아야 한다. 3. 메소드의 리턴 타입이 반드시 같아야 한다. 단, 리턴 타입이 상속 관계일 때는 작은 타입으로 재정의 가능하다. 4. 메소드의 매개변수가 반드시 같아야 한다. ( 다를 경우 오버로딩으로 인식될 수 있다고 생각한다.) 5. 접근 지정자의 범위는 반드시 확대만 가능하다. 6. 예외 클래스의 범위는 축소만 가능하다. 7. static, final, private 지정자를 가진 메소드는 오버라이딩이 불가능하다. class Parents{ public void print(){ System.out.println("나는 아버지다"); } } class Son.. 2015. 7. 15. Java 배열 선언 자바 배열 선언 종류 1. 타입[] 배열명 = {value1, value2, ...}; 2. 타입[] 배열명 = new 타입[크기]; 2015. 7. 13. 이전 1 2 3 4 다음