Java 클래스내 계층관계.
객체지향 프로그램에서 가장많이 사용되는 클래스, 상속, 은닉,캡슐화이다.
계층구조는 상속 , 확장은 implement 이다.
AbstactClass (추상클래스)
추상클래스는 단독으로 사용이 불가능한 클래스형식이다.
C/C++ 에서 virtual(가상함수) 와 비슷한 개념이다.
C/C++ 에서 가상함수는 함수의 머리는 선언하되 상속을 받은 자식클래스에서 overriding 하여 사용하였다.
추상클래스를 사용하게되면 많은 이점들이 존재한다.
예를든다면 타입만 다르고 행동을 동일하게 해야하는 상황에 사용하면 매우좋다.
Abstract Class 역시 몸체는 선언하되 상속받은 자식개체가 재정의하여 사용한다.
Interface :
인터페이스는 상속이랑 비슷해보이나 다른개념이다. 상속은 상하 계층구조지만 Interface는 확장이다.
인터페이스는 상하관계가 아닌 좌우 로 확장되는 개념이라 생각하면 좋겠다.
Interface 는 모든내용이 존재하지않는다 Abstact Method, 클래스의 메서드 정의만 존재한다.
Generic :
Generic은 자바만이 가진 매우 특별한 기능이다.
Abstract , Interface는 머리부분만 작성후 몸체는 나중에 작성하였었다면
Generic 은 타입도 미뤄두는 개념이다.
C/C++ 에서 Template 와 비슷하나 다르다.
C/C++ 에서 Template는 컴파일시에 실행하므로 실행시간에 최대한 중심했다면
Generic은 Runtime에 실행된다.
Java의 모든 개체는 Object를 상속받고있다 ,그래서 Object를 활용하여 프로그램을 짜는데 특별히 문제가 되지않는다 . 하지만 사용했던 Object를 필요에 재사용하여 따른 타입값을 입력받고 사용하기위해선 TypeCasting 이 필수적이다.
형변환을 많이 사용하게되면 코드의 수가 길어지고, Object의 투명성이 사라진다.
결론은 코드를 한번에 알아보기가 힘들어진다.
Generic을 활용하면 명확하게 코드읽기가 좋아지고, 입력받는값들을 정할수도있다 매우 좋다.
ChattingClient작성. (0) | 2017.11.20 |
---|---|
Java GUI (0) | 2017.11.10 |
Java UI Button Listener (0) | 2017.11.10 |
Java exception Explanation (0) | 2017.11.09 |
Java Class (0) | 2017.11.01 |
Java Typecasting (0) | 2017.11.01 |