일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- switch-case
- 가위바위보 게임
- 유효성 검사
- Style Sheet
- decimalformat
- 삼항(조건) 연산자
- 문자열 비교
- Scanner
- 접근제한자
- count_program
- 간단한 연산
- Do while
- 할당 연산자
- 컬렉션프레임워크
- DropDown
- SQLIntegrityConstraintViolationException
- 반복문
- var 변수
- 형변환 연산자
- 업다운 게임
- 배열 array
- 표 구현
- 논리 연산자
- Math 함수
- 변수 기본형
- color code
- IF else
- 관계 연산자
- 변수
- 객체 배열
Archives
- Today
- Total
무룩 공부방
[Java02] 23. 오버라이딩(Overriding) (Eclipse) 본문
# 오버라이딩(Overriding)
- 슈퍼 클래스의 메서드를 서브 클래스에서 재정의
- 조상 클래스로 부터 상속받은 메서드의 내용을 변경하는 것
- 슈퍼 클래스 메서드의 이름, 매개 변수 타입 및 개수, 리턴 타입을 동일하게 재작성 한다
- 선언부가 서로 일치 해야 한다
package java02_intermediate;
class OldPerson {
protected String name;
protected int age;
protected String address;
public void displayPerson() {
System.out.printf("name : %s\t age : %d\t address %s\n", name, age, address);
}
}
class OldStudent extends OldPerson {
protected int number;
protected String memClass;
protected String subject;
protected String grade;
@Override
public void displayPerson() {
// TODO Auto-generated method stub
System.out.printf("name : %s\t age : %d\t address %s\n", name, age, address);
System.out.printf("number : %d\tmemClass : %s\tsubject : %s\tgrade : %s\n", number, memClass, subject, grade);
}
}
class Person {
protected String name;
protected int age;
protected Person(String name, int age) {
this.name = name;
this.age = age;
}
public void printInfo() {
System.out.println("<개인>");
System.out.printf("name : %s\n", name);
System.out.printf("age : %d\n", age);
System.out.println();
}
}
class Professor extends Person {
private String major;
public Professor(String name, int age, String major) {
super(name, age);
this.major = major;
}
public void printInfo() {
System.out.println("<교수>");
System.out.printf("name : %s\n", name);
System.out.printf("age : %d\n", age);
System.out.printf("major : %s\n", major);
System.out.println();
}
}
class JslStudent extends Person {
private String majorClass;
private String grade;
public JslStudent(String name, String majorClass, String grade, int age) {
super(name, age);
this.majorClass = majorClass;
this.grade = grade;
}
public void printInfo() {
System.out.println("<학생>");
System.out.printf("name : %s\n", name);
System.out.printf("age : %d\n", age);
System.out.printf("majorClass : %s\n", majorClass);
System.out.printf("grade : %s\n", grade);
System.out.println();
}
}
class Shape {
public Shape next;
public Shape() {
next = null;
}
public void draw() {
System.out.println("Shape");
}
}
class Line extends Shape {
@Override
public void draw() {
System.out.println("Line");
}
}
class Rect extends Shape {
@Override
public void draw() {
System.out.println("Rectangle");
}
}
class Circle extends Shape {
@Override
public void draw() {
System.out.println("Circle");
}
}
class ShapeTwo {
protected String name;
public void printSt() {
draw();
}
public void draw() {
System.out.println("shape");
}
}
class Triangle extends ShapeTwo {
@Override
public void draw() {
System.out.println("Dynamic Binding Draw()...");
}
}
public class Java23_Overriding {
static void paint(Shape s) {
s.draw();
}
public static void main(String[] args) {
OldPerson person = new OldPerson();
person.name = "홍길동 엄마";
person.age = 530;
person.address = "지리산 산적골";
person.displayPerson(); // 조상의 메서드
OldStudent student = new OldStudent();
student.name = "아들 길동이";
student.age = 500;
student.address = "대전시";
student.number = 20231004;
student.memClass = "마술학과";
student.subject = "변신술";
student.grade = "A+";
student.displayPerson();
Person Person2 = new Person("이순신", 100);
Professor professor = new Professor("강사", 200, "it");
JslStudent JslStudent = new JslStudent("소연이", "it", "web", 23);
Person2.printInfo();
professor.printInfo();
JslStudent.printInfo();
Line line = new Line();
paint(line);
Rect rect = new Rect();
paint(rect);
Circle circle = new Circle();
paint(circle);
ShapeTwo st1 = new ShapeTwo();
st1.printSt(); // ShapeTwo
st1.draw(); // ShapeTwo
ShapeTwo st2 = new Triangle();
st2.printSt(); // Dynamic
st2.draw(); // Dynamic
}
}

'IT > Java02_Intermediate' 카테고리의 다른 글
[Java02] 25. 추상 클래스 응용 (1) (Abstract Class) (Eclipse) (0) | 2023.10.07 |
---|---|
[Java02] 24. 추상 클래스(Abstract Class) (Eclipse) (0) | 2023.10.07 |
[Java02] 22. 다형성 (Eclipse) (4) | 2023.10.02 |
[Java02] 21. 상속 (Eclipse) (0) | 2023.09.28 |
[Java02] 컬렉션 프레임 워크 (8) List/map 응용(Eclipse) (0) | 2023.09.28 |