- static : class loading시 메모리 적재된다
: class loading -> 코드검증 -> 실행(runtime)
static 적재 객체 생성
http://www.whatprogramming.com |
static 멤버 ( 변수 및 메서드 )는 별도의 객체 생성 필요없다
ex)
1
2
3
4
|
class Person{
static void test(){}
}
Person.test(); <- 사용가능
| cs |
- final
- final 상수 : 재할당 불가
- final 메서드 : 오버라이딩 불가
- final 클래스 : 상속 불가
http://www.itrelease.com |
- Abstract
- abstract method (추상 메서드 )
-> 자식 클래스에서는 반드시 상속받는 부모 클래스의 추상메서드를 구현해야 한다
-> 추상메서드는 하위 클래스에게 기능 구현을 강제하며 이는 시스템 표준화에 기여
ex)
public abstract void study();
| cs |
/ | static | non-static( object or instance ) |
---|---|---|
메모리영역 | method area (or class area) | heap |
멤버 | 클래스멤버 | 객체멤버 |
적재시점 | class loading시 단 한번 적재 | 객체 생성시 별도 적재 |
- abstract class (추상 클래스)
- 직접 객체화 될 수 없다
- 자식클래스의 생성자 내 super() 를 통해 객체 생성
- abstract class는 자식에게 멤버를 제공할 수 있다
https://sites.google.com/site/sureshdevang/design-pattern-example |
- Template Method Design Pattern
자식 클래스에서 알고리즘의 일부만 구현케 하는 설계패턴