본문 바로가기

* Web/[Back] Java21

[Java] 자바 : 상속을 금지하는 final 클래스 간 상속이 가능하다면, 반대로 클래스 간 상속을 막아 놓는것이 있다. 그 역할을 해주는 키워드가 바로 final이다. final의 경우 2가지로 사용 할 수 있다. 바로 클래스간 상속 금지와 메소드 오버라이딩의 금지이다. final은 - 클래스간 상속 금지 final class A { } class B { } : B에서 A를 상속할려고 하면 불가능하다. final로 막아놨기 때문에 - 메소드 오버라이딩의 금지 class A{ final int testresult(){ } } class B { } : 만약 B에서 A의 final 메소드를 오버라이딩 할려고 하면 컴파일 에러가 발생한다. 2021. 3. 22.
[Java] 자바 : 인터페이스(interface) 개념과 동시에 다형성 개념 익히기 Java 자바 : 인터페이스(Interface)로 바라보는 다형성 개념 인터페이스란? "클래스에 역할을 부여하기 위한 역할 정의 방법." 책에서 목차를 생각하면 쉽다.(글쓴이의 말하고자 하는 바의 전체 개념을 목차에다 설명하고 자세한 설명은 해당 페이지에 가면 정리가 되어있다.) interface Book{ // 책을 읽을거야 근데 그 방법은 아직 설명X, 그냥 나 이렇게 하겠다고만 선언 public void readContext(); // 내용이 없는 껍데기 메소드 - > 프로토 타입 메소드 = 추상 메소드 // 나는 나의 생각을 적을거야 어떻게? 아직 그건 몰라~ public void writemyOpinion(); } class Mybook implements Book { //@메소드 오버라이딩 p.. 2021. 3. 19.
[Java] 자바 : (상속)부모 생성자 호출을 위한 super 부모와 자식 클래스 관계에서, 자식 객체를 생성과 동시에 초기화를 하기위해서는 부모의 생성자가 우선적으로 호출이 필요하다. 이러한 부모 클래스에 있는 생성자를 호출하기 위해서 자식 클래스에서 super를 사용한다. 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 class Main { ... Child c = new Child("김김김", 1, "혼자음식먹기"); ... } class Parent { protected String name; protected int age; public Parent(String name, int age) { this.name = name; this.age = age; } } class Child ext.. 2021. 3. 18.
[Java] 자바 : 메소드 오버로딩(Overloading) vs 메소드 오버라이딩(Overiding) 차이점? 메소드 오버로딩(Overloading)과 메소드 오버라이딩(Overriding) 한 번에 이해하기 본론으로 가기전, 명확한 개념을 딱 집어서 이해하기 보다는 그림으로 이해하는것이 가장 쉽습니다. 또한 기준이 되는 것은 클래스 1개의 내부에서 일어나는 일인지 혹은 2개 이상의 클래스에서 발생하는지를 기준으로 접근하시면 쉽습니다. 또한 영어단어를 기반으로 이해하기 보다는, 클래스 상에서 어떻게 쓰이는지 중점적으로 보고 머리에 그림을 그리며 이해하면 쉽습니다. [ 판단 기준 ] - 클래스 1개에서 일어나는가? - 2개 이상의 클래스에서 일어나는가? * 오버로딩(Overloading) 한 클래스(n=1)내에 똑같은 이름의 메소드를 여러 개 선언 하는 것. class ONE{ ... ... void upgrade.. 2021. 3. 18.
[Java] 자바 : (상속) 업 캐스팅 개념? 영어 단어 뜻 Upcasting의 의미란 무엇인가? * casting 무언가를 선정한다는 의미이며 길거리 케스팅을 생각하면 쉽게 이해 할 수 있다. 그런 케스팅을 기반으로 위를 나타내는 Up이 추가되었다. 그럼 최종적으로 위에거를 선택한다 라는 뜻이 된다. 그렇다면 자바상에서 업케스팅이란? 클래스 기반으로 이루어져있는 자바에서 "상속"이라는 개념속에서 등장한다. 즉, 부모 클래스의 타입을 그대로 물려받는다는 뜻이다. 이 말의 의미는 최소 2개 이상의 클래스가 있어야 성립이 된다. 그렇다면 왜 쓸까? 다양한 객체들을 부모의 타입으로 관리 할 수가 있기 때문이다. 예를들어 Problem) : 중복되는 코드가 넘쳐난다. Horse h = new Horse(); Lion l = new Lion(); Cat c .. 2021. 3. 18.