오버로딩
오버라이딩
한 생성자에서 다른 생성자 호출
final과 static의 차이
abstact
abstract class Animal { abstract void cry(); }
class Cat extends Animal { void cry() { System.out.println("냐옹냐옹!"); } }
class Dog extends Animal { void cry() { System.out.println("멍멍!"); } }
public class Polymorphism02 {
public static void main(String[] args) {
// Animal a = new Animal(); // 추상 클래스는 인스턴스를 생성할 수 없음.
Cat c = new Cat();
Dog d = new Dog();
c.cry();
d.cry();
}
}
instanceof 연산자
System.out.println( parent instanceof Parent ); // true
System.out.println( child instanceof Parent ); // true
System.out.println( parent instanceof Child ); // false
System.out.println( child instanceof Child ); // true
인터페이스
public interface 인터페이스명 {
//상수
타입 상수명 = 값;
//추상 메소드
타입 메소드명(매개변수, ... );
//디폴트 메소드
default 타입 메소드명(매개변수, ... ){//구현부}
//정적 메소드
static 타입 메소드명(매개변수) {//구현부}
}
추상클래스와 인터페이스
추상클래스와 인터페이스의 차이점
출처 :
https://www.delftstack.com/ko/howto/java/java-call-another-constructor/
https://gobae.tistory.com/3
http://www.tcpschool.com/java/java_polymorphism_abstract
https://mine-it-record.tistory.com/120
https://limkydev.tistory.com/197
https://myjamong.tistory.com/150