-업캐스팅 : 부모 클래스 변수로 자식 클래스 객체를 참조
-동적바인딩
-다형성
-추상클래스 : 추상클래스는 new로 생성할 수 없다.
-인터페이스 : 인터페이스는 상수와 추상메서드로만 구성되어 있다
-익명클래스 : 익명 클래스는 하나의 객체만 생성하면 되는 경우에 많이 사용. 부모 클래스에서 상속을 받아서 작성하거나 인터페이스를 구현하여서 작성할 수 있다.
-UML
오늘 어려웠던 코드 1
package study.day0308;
class Parent{
public void play()
{
System.out.println("나는 부모!!일을 시킨다");
}
}
class Child1 extends Parent
{
@Override
public void play() {
// TODO Auto-generated method stub
super.play();
System.out.println("첫째: 나는 집안 청소를 할게요! ");
}
}
class Child2 extends Parent
{
@Override
public void play() {
// TODO Auto-generated method stub
super.play();
System.out.println("둘째: 나는 식사 담당을 할게요! ");
}
}
class Child3 extends Parent
{
@Override
public void play() {
// TODO Auto-generated method stub
super.play();
System.out.println("셋째: 저는 설거지를 할게요! ");
}
}
public class Ex2Inheri {
public static void process(Parent p)
{
p.play(); //다형성
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//다형성
// Parent p=null;
//
// p=new Child1();
// p.play();
//
// p=new Child2();
// p.play();
//
// p=new Child3();
// p.play();
process(new Child1());
process(new Child2());
process(new Child3());
}
}
오늘 어려웠던 코드 2
package study.day0308;
import java.util.Scanner;
interface Command {
public void process();
}
class Add implements Command {
@Override
public void process() {
System.out.println("추가합니다");
}
}
class Delete implements Command {
@Override
public void process() {
System.out.println("삭제합니다");
}
}
class Select implements Command {
@Override
public void process() {
System.out.println("조회합니다");
}
}
class Update implements Command {
@Override
public void process() {
System.out.println("수정합니다");
}
}
public class Ex10Interface {
public static void process(Command comm) {
comm.process(); // 1.추가합니다 2.삭제합니다 3.조회합니다 4.수정합니다 라고 출력 되도록 구현하기
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int menu;
Command comm = null;
Exit: while (true) {
System.out.println("1.추가 2.삭제 3.조회 4.수정 5.종료");
menu = sc.nextInt();
switch (menu) {
case 1:
comm = new Add();
break;
case 2:
comm = new Delete();
break;
case 3:
comm = new Select();
break;
case 4:
comm = new Update();
break;
default:
System.out.println("**종료합니다**");
break Exit;
}
process(comm);
System.out.println("=".repeat(30));
}
}
}
'학교 & 학원 이론 수업 > 네이버 클라우드 AIaaS 개발자 양성 과정' 카테고리의 다른 글
3.10 자바 수업 정리 - (Collection: list, set, map ) (0) | 2023.03.11 |
---|---|
3월 9일 자바 수업 정리 - Exception (0) | 2023.03.09 |
3월 7일 자바 수업 정리 (0) | 2023.03.07 |
3월 2일 자바 수업 정리 (0) | 2023.03.02 |
2.13~2.17 국비교육 정리 (0) | 2023.02.17 |