반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- vscode
- tensorflow
- KNeighborsClassifier
- broscoding
- 결합전문기관
- Keras
- CES 2O21 참여
- cudnn
- postorder
- bccard
- 재귀함수
- 자료구조
- web 용어
- 머신러닝
- inorder
- web 개발
- 웹 용어
- 데이터전문기관
- CES 2O21 참가
- web 사진
- pycharm
- html
- 대이터
- java역사
- web
- mglearn
- classification
- paragraph
- C언어
- discrete_scatter
Archives
- Today
- Total
bro's coding
java.Overriding(메서드 오버라이딩) 본문
반응형
Overriding(메서드 오버라이딩) : 부모 메서드를 자신에 맞게 재정의
>문법 : 접근제어자는 더 좁아지면 안 되고 리턴파입 매개변수 매서드명은 동일
> 사용자, user, client code에서는 부모클래스 또는 상위 인터페이스만 알면 세부 구현 메서드를 보지 않아도 사용이 가능
> user 편의성 증대
> 구현부가 변경되어도 소통부는 변화되지 않음으로 유지보수성 증대
// before Overriding
package step4;
class Animai {
public void sleep() {
System.out.println("자다");
}
public void eat() {
System.out.println("먹다");
}
}
class Person extends Animai {
}
public class TestOverriding1 {
public static void main(String[] args) {
Person p = new Person();
p.sleep();
p.eat();
}
}
/*
자다
먹다
*/
//Overriding
package step4;
class Animai {
public void sleep() {
System.out.println("자다");
}
public void eat() {
System.out.println("먹다");
}
}
class Person extends Animai {
// 메서드 오버라이딩 : 부모 메서드를 자신에 맞게 재정의해서 사용
// 문법 : 접근제어자는 더 좁아지면 안 되고 리턴파입 매개변수 매서드명은 동일
public void eat() {
System.out.println("사람이 숟가락을 이용해 먹다");
}
}
public class TestOverriding1 {
public static void main(String[] args) {
Person p = new Person();
p.sleep();
p.eat();
}
}
/*
자다
사람이 숟가락을 이용해 먹다
*/
예제 2
package step5;
public class Employee {
private String empNo;
private String name;
private int salary;
public Employee(String empNo, String name, int salary) {
super();
this.empNo = empNo;
this.name = name;
this.salary = salary;
}
public String getEmpNo() {
return empNo;
}
public void setEmpNo(String empNo) {
this.empNo = empNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public String getDetails() {
return "empNo: "+empNo+" name: "+name+" salary: "+salary;
}
}
package step5;
public class Engineer extends Employee {
private String skill;
public Engineer(String empNo, String name, int salary, String skill) {
super(empNo, name, salary);
this.skill = skill;
}
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
// 메서드 오버라이딩 : 부모 메서드를 자신에 맞게 재정의
public String getDetails() {
return super.getDetails()+" skill: "+skill;
}
}
package step5;
public class Manager extends Employee {
private String department;
public Manager(String empNo, String name, int salary, String department) {
super(empNo, name, salary);
this.department = department;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public String getDetails() {
return super.getDetails()+" department: "+department;
}
}
package step5;
public class TestOverriding2 {
public static void main(String[] args) {
Employee e = new Employee("123","아이유",300);
System.out.println(e.getDetails());
Engineer en = new Engineer("124","박보검",400,"java");
System.out.println(en.getDetails());
Manager m = new Manager("125","이효리",500,"영업부");
System.out.println(m.getDetails());
}
}
/*
empNo: 123 name: 아이유 salary: 300
empNo: 124 name: 박보검 salary: 400 skill: java
empNo: 125 name: 이효리 salary: 500 department: 영업부
*/
반응형
'[IT] > java' 카테고리의 다른 글
java.Polymorphism(다형성) (0) | 2021.03.02 |
---|---|
java.annotation(어노테이션) (0) | 2021.03.02 |
java.overriding.toString (0) | 2021.03.02 |
java.Object(오브젝트 클래스) (0) | 2021.03.02 |
java.분석 설계 (0) | 2021.03.02 |
java.super/this (0) | 2021.02.26 |
java.Access Modifier(접근 제어자) (0) | 2021.02.26 |
java.Inheritance(상속) (0) | 2021.02.26 |
Comments