Gentle Breeze
객체지향 - 추상화 - 객체의 속성과 행위 중에서 필요한 것을 드러내어 클래스(필드, 메소드)로 정하는 것. - 상속 - 하위클래스에서 물려주거나 상위에서 물려받거나 - 상위에 정의된 필드와 메소드를 물려받아서 사용할 수 있다. - 클래스 - 내부에 있을수 있는 것 - 필드, 생성자, 메소드 - 필드(클래스, 인스턴스) - 메소드(static, nonstatic) - 추상, 인터페이스 - 캡슐화 - 묶는다. (여러 데이터와 함수를 하나의 class로 묶는다.) - 감춘다. (내부의 데이터나 함수를 private, protected로 정하여 감춘다.) - 다형성(Overloading, Overriding) - 동일한 이름으로 메소드를 정하여서 사용한다. - 상위에 있는 메소드를 다시 정의하여 사용한다.
인터페이스는 - 일종의 추상클래스이다. - 내부엔 메소드 선언만이 가능하다. - 추상클래스는 선언도 되고, 정의도 된다. - 기능을 대변하는 역할을 한다. - 객체생성되지 않는다. - 변수를 가질수 없다. 내부에 정해지는 변수는 모두 상수로 처리된다. - 객체나 컴포넌트가 제공하는 서비스를 알리는 역할을 한다.(차후 추가 설명) - 하위클래스에, 인터페이스에 선언된 메소드를 구현해야한다. - 타입으로는 사용가능하다. - 인터페이스의 하위클래스는 여러 인터페이스를 상속받을 수 있으며 다른 클래스를 상속받을 수 있다. (eg : Vector) 자바에서는 implements라는 키워드를 사용하여 이를 표현하고 있다. 예) public interface Transportable { public abstract ..
예제) public class A { public static void main(String[] args) { } } abstract class AbstractClass { abstract AbstractMethod(); } class Child1 extends AbstractClass { // field variables AbstractMethod() { System.out.println("Child1"); } } class Child2 extends AbstractClass { // field variables AbstractMethod() { System.out.println("Child2"); } } ======================================================..
Method Overriding class Main { public static void main(String[] args) { Parent p = new Parent(); Parent c = new Child(); p.method1(); } } class Parent { method1() {}; } class Child { method1() { ......; } method2() {} } ================================================================ 위와 같은 경우 Parent p는 Child class로 선언이 되었으며 method1()을 사용할 경우 Child class의 method1()부터 찾아서 실행을 시키게 된다. 만약 Child clas..