파라미터의 데이터형이 서로 다르기 때문에 오버로드 성립
public void foo(int a) {}
public void foo(long a) {}
( int 타입이 우선시되나, 보통 이렇게 헷갈리게 코딩하지는 않음)
파라미터의 갯수가 서로 다르기 때문에 오버로드 성립
public void foo(int a) {}
public void foo(int a, int b) {}
데이터 형의 전달 순서가 서로 다르기 때문에 오버로드 성립
public void foo(int a, String b) {}
public void foo(String a, int b) {}
오버로드 불가
public int foo(int a) {}
public String foo(int x) {}
class Hello{
public Hello(String msg){
System.out.println(msg);
}
public Hello( ){
this("Hello");
System.out.println("Hello);
}
public class Main01 {
public static void main(String[] args) {
Article a1 = new Article(1);
System.out.println(a1.toString());
Article a2 = new Article(2, "테스트 게시물");
System.out.println(a2.toString());
Article a3 = new Article(3, "게시물 테스트", "자바 학생");
System.out.println(a3.toString());
}
}
public class Article {
private int seq;
private String subject;
private String writer;
public Article(int seq, String subject, String writer) {
super();
this.seq = seq;
this.subject = subject;
this.writer = writer;
}
//3개의 값을 모두 입력해야 Article 하나가 생성되는데 제목은 제목없음, 작가 익명으로 일단 만들고 싶은 경우에 대해 만들고싶다.
public Article (int seq) {
this(seq,"제목없음", "익명");//this라는 키워드가 메서드처럼 사용했다. 아래 3줄을 한 줄로 처리했다.
// this.seq = seq;
// this.subject = "제목없음";
// this.writer = "익명";
}
//
public Article(int seq, String subject) {
this(seq, subject, "익명");
// this.seq = seq;
// this.subject = subject;
// this.writer = "익명";
}
@Override
public String toString() {
return "Article [seq=" + seq + ", subject=" + subject + ", writer=" + writer + "]";
}
}