1. 추상메소드(abstract method) 추상메소드란 선언은 되어 있으나 코드가 구현되어 있지 않은 메소드이다. 추상메소드는 abstract키워드를 선언하는 선언부만이 존재하고, 구현부는 작성하지 않고 사용한다. 작성되어 있지 않은 구현부는 자식클래스에서 오버라이딩하여 사용한다. abstract 반환타입 메소드명(); 추상메소드 예시 public abstract String getSubject(); public abstract void setSubject(String s); public abstract fail() { return "Hi" ; }// 컴파일오류 2. 추상클래스(abstract class) 추상메소드를 가지고 있으면 반드시 추상 클래스로 선언해야 한다. 추상클래스 선언은 abstrac..
1. 다형성(polymorphism) 하나의 객체가 여러 자료형 타입을 가질수 있는 것을 다형성(polymorphism)이라고 한다. 부모클래스의 참조변수로 자식클래스 타입의 인스턴스를 참조할 수 있다. 오버라이딩은 상속을 통해 '같은 이름의 메소드를 서로 다른 내용으로 구현'한다는 점에서 객체 지향의 다형성을 실현한다고 볼 수 있다. 참조변수의 다형성 자바에서는 부모클래스의 참조변수로 자식클래스 타입의 인스턴스를 참조할수 있는데 이때 참조 변수가 사용할 수 있는 멤버의 개수가 실제 인스턴스의 멤버 개수보다 같거나 적어야 가능하다. 자식클래스의 참조변수로 부모클래스의 인스턴스를 참조할 수 없다. 자식클래스에서 사용할 수 있는 멤버의 개수는 부모클래스와 같거나 많기 때문에 참조 할 수 없다. class P..
1. 객체지향프로그래밍(Object Oriented Programming) 자바는 대표적인 객체지향 프로그래밍 언어이다. 실제세계를 객체라는 단위로 나누고 객체들간의 상호작용을 의미한다. 즉, 프로그램을 여러개의 독립된 단위인 객체들의 모임으로 파악하고자 하는 것이다. 객체란 무엇일까? 객체(Object)는 우리 주변에 있는 모든 것이 될 수 있다. 예를 들어 TV, 컴퓨터, 책, 건물, 의자, 사람 등 모두 객체가 될 수 있다. 객체는 자신만의 고유한 특성과 행동을 가지며 다른 객체들에게 행동을 요청하거나 정보를 주고 받는 등 상호작용을 하면서 존재한다. 객체는 크게 속성(필드, field)과 동작(메소드, method)으로 구성되어 있다. 예, 학생의 속성 : 이름, 학년, 학번 등 예, 학생의 동작..