728x90
반응형
SMALL
1.오버로딩
중복으로 메소드를 선언하는것,
이름은 같은 메소드 이나 받고있는 (파라미터,타입)의 시그니처 값이 다름
[특징]
- 메소드의 이름이 같아야함
- 리턴형은 같아도되며 달라도된다.
- 파라미터 개수가 달라야함, 같을 경우! 데이터 타입이 달라야함
오버로딩
public class Overloading{
void print(){
System.out.println("매개변수 없음")
}
void print(int a,int b){
System.out.println("매개변수는" +a+ "와 " +b);
}
void print(double c){
System.out.println("매개변수" +c);
}
}
public class OverloadingTest{
public static void main(String[] args){
Overloading ob=new Overloading();
ob.print();
ob.print(100,200);
ob.print(12345.6);
}
}
=====================================실행결과=================================
매개변수 없음
매개변수는 100와 200
매개변수 12345.6
똑같은 이름의 중복된 메서드를 여러개 선언하고 있는 Overloading 클래스를
OverloadingTest 클래스에서 그대로 매개변수값만 다르게 주어 사용하고 있는걸 확인할 수 있다.
2.오버라이딩("부모님의 등에 업혀있다/타고있다." 라고 생각하면 쉽다.)
부모클래스에서 선언되어있는 메소드를 자식클래스로 가져와 재정의 하여 사용
>>>> 이는 소프트웨어 재사용 측면에서 용이함
[특징]
- 오버라이드 하고싶은 메소드는 항상 상위클래스에 존재해야함
- 메소드의 이름이 똑같아야함
- 메소드의 파라미터 개수, 자료형,타입등이 똑같아야함
- 메소드의 리턴형 또한 똑같아야함
- 상위 메소드와 동일하거나 또는 내용이 추가되어야함
오버라이딩
public class Mother{ //부모클래스
public String name;
public int age;
public void print(){
System.out.println("나의 이름은"+this.name+"이고, 나이는" +this.age+"입니다.");
}
}
public class Son extends Mother{ //자식클래스
String job;
//부모클래스의 메소드를 가져온 [오버라이딩]
public void print(){
System.out.println("나의 이름은"+this.name+"이고, 나이는" +this.age+"입니다.");
//새로운 내용의 추가
System.out.println(this.name+"의 직업은 " +this.job+ "입니다.");
}
}
public class Family{
public static void main(String[] args){
Son fm=new Son();
fm.name="JYP"
fm.age=25;
fm.job="개발자";
Son.print();
}
}
=============================실행결과======================================
나의 이름은 JYP이고, 나이는 25입니다.
JYP의 직업은 개발자 입니다.
728x90
반응형
LIST
'나의 주니어 개발 일기 > 헷갈렸던 개념들' 카테고리의 다른 글
JSON은 무엇이며 왜 사용할까? (0) | 2021.04.13 |
---|---|
자바 예외처리의 차이 try~catch vs throws (0) | 2021.03.18 |
GIT 사용법 (0) | 2020.12.31 |
[Web]에서의 GET 과 POST의 차이 (0) | 2020.12.21 |
웹 서버와 WAS 의 차이점 (0) | 2020.12.20 |