자바/Java TPC(생각하고, 표현하고, 코딩하고)

    Object 클래스는 신이야

    Object 클래스는 신이야

    Object 클래스에서는 toString() 메서드가 존재하며, toString() 메소드는 재정의를 하지 않는 경우에는 "해당 객체의 주소를 문자열로 출력"해주며, 사용자 정의 클래스(객체)에서 재정의를 했을 경우 재정의된 메서드 toString()를 실행된다. public class A extends Object { public A() { super(); } public void display() { System.out.println("나는 A이다."); } @Override public String toString() { return "재정의 메서드 입니다."; } } 자식 클래스 A에서 toString()를 오버라이딩 하였기 때문에 toString()을 호출하는 경우 "재정의 메서드 입니다"가 출..

    추상클래스 vs 인터페이스

    추상클래스와 인터페이스의 공통점 객체생성불가 추상메서드를 가진다. 자식클래스나 구현클래스에서 추상메서드를 반드시 오버라이딩을 해야한다. 추상클래스와 인터페이스의 차이점 추상클래스 추상클래스는 추상메서드와 구현메서드를 가질 수 있다. 추상클래스에 공통의 동작을 나타내는 구현메소드 walk()가 존재하므로 서로 기능이 비슷한 클래스(Dog.class, Cat.class)의 공통부분을 묶을 때 사용한다. 단일상속만 가능 인터페이스 구현메서드를 가질 수 없으며, 100% 추상메서드만 가질수 있다. 서로 기능이 다른 클래스(TV class, Radio class)의 공통부분(리모콘)을 묶을 때 사용된다. 다중구현(implements)이 가능 ※주의할 것 public class Dog extends Animal i..

    인터페이스(100% 다형성 보장) & final, static

    인터페이스 1. 인터페이스는 구현메서드는 포함하지 않으며, 100% 추상메소드로 이루어져 있다. 인터페이스는 장애객체때문에 RemoCon rc = new RemoCon(); 객체 생성불가!! public interface RemoCon { public int MAXCH=100; public static final int MINCH=1; public void chUp(); public void chDown(); public void internet() ; } 2. 인터페이스 내에 있는 필드 앞에 static이 붙는 이유 public static final int MAXCH = 100; public static final int MINCH=1; →인터페이스는 객체 생성이 불가하므로 구현클래스에서 객체생성없이..

    추상클래스(일부 다형성 보장)

    추상클래스 1. 해당 클래스가 추상메서드를 1개라도 가지고 있으면, 그 클래스는 추상클래스(abstract class Animal)가 된다. 추상클래스는 불완전한 클래스이기 때문에 Animal ani = new Animal(); 객체생성불가!!! public abstract class Animal { public abstract void eat(); // 추상 메서드 public void move() { // 구현메서드 System.out.println("무리를 지어서 이동한다."); } } 2. 부모클래스가 추상메소드를 포함하고 있는 경우 그 추상메소드는 자식클래스에서 반드시 오버라이딩(Overring)되어야 한다. public class Dog extends Animal { // eat() { ? }..