추상클래스, 인터페이스 실습 public abstract class Camera { public void takePicture(){ System.out.println("사진을 촬영합니다."); } public void recordVideo(){ System.out.println("동영상을 녹화합니다."); } public abstract void showMainFeature(); } ---- public class AbstractTest { public static void main(String[] args) { // Camera camera = new Camera(); } } ------------ public class FactoryCam extends Camera{ @Override public v..
수업 순서대로 코드 및 설명 보충 개념설명 추상클래스, 추상메서드 추상클래스는 미완성 설계도를 가진 클래스라고 생각하면 된다 추상클래스란 추상 메서드를 선언할 수 있는 클래스. 불완전 형태 (설계만 되어있고, 구현체가 없는 것) 접근제어자, 리턴타입, 메소드명(파라메터)는 있지만 중괄호 블록 없음. 예) public int sum(int a, int b); 추상: 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용. 예 ) 정녕 해가 있다면 그것은 당신들이 지금 알고 있는 것이 아니라 그 이름이 가진 어떤 추상일 뿐이오. (출처: 네이버 지식사전) 컴퓨터 과학에서의 추상화는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을..
추상클래스, 인터페이스_추상화_데이터추상화(Data Abstration) ★주요 키워드 및 내용 정리★ 추상클래스 키워드 :abstract 자식 클래스에서는 extends로 추상클래스를 상속받아 구현 미구현된 부분을 오버라이딩 하여 꼭 구현을 해주어야 함 추상클래스 그 자체로는 객체 생성을 할 수 없다. 자손클래스에서 미구현된 부분을 다 구현했다면, 부모타입인 abstract 클래스의 타입으로도 객체 생성이 가능. (다형성) 인터페이스 키워드: implements (클래스 생성시, interface를 선택하여 클래스를 만든다) 인터페이스는 주로 동작을 많이 정의하며, 설계도 중 뼈대와 같은 부분을 담고 있음. 인터페이스를 구현받아 작성된 클래스들은 똑같은 기능이 꼭 구현이 되어 있다는 보장을 할 수 있다..
Book06 package Prac06; public class Book06 { public String title; public String author; public String publisher; public int price; public Book06() { } public Book06(String title, String author, String publisher, int price) { this.title = title; this.author = author; this.publisher = publisher; this.price = price; } } Course package Prac06; public class Course { // 멤버변수 // title, tutor, days 가 Co..

MathTest package Prac09; public class MathTest { public int add(int a, int b) { System.out.println("int add(int a, int b) -"); return a+b; } public int add(int a, int b, int c) { System.out.println("int add(int a, int b, int c) -"); return a+b+c; } public long add (long a, int b){ System.out.println("int add(long a, int b) -"); return a+b; } public long add (long a, long b) { System.out.println(..

Book package Prac08; public class Book { public String title; public String author; public String publisher; public int price; public Book() { } public Book(String title, String author, String publisher, int price) { this.title = title; this.author = author; this.publisher = publisher; this.price = price; } public void setTitle(String title) { this.title = title; } public void setAuthor(String a..

오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 한다. 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 한 클래스 내에 같은 이름의 메서드를 여러개 정의하는 것을 ‘오버로딩’ 이라고 한다. 오버로딩의 조건 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 참고) 오버로딩된 메서드들은 매개변수에 의해서만 구별될 수 있으므로 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 오버라이딩(overriding) 부모(조상)클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라..

오버로딩, 오버라이딩, 다형성 public class MathTest { public int add (int a, int b) { System.out.println("int add(int a, int b) - " ); return a+b; } public int add (int a, int b, int c) { System.out.println("int add(int a, int b, int c) - " ); return a+b+c; } public long add (long a, int b) { System.out.println("int add(long a, int b) - " ); return a+b; } public long add (long a, long b) { System.out.println..