Backend/Java (75) 썸네일형 리스트형 [인프런] 객체, 생성 방법, 객체 생성 예제로 공부하는 Java 100 문제풀이 Part.4 부모 클래스 Person이 있고, 이를 상속받은 자식 클래스 Student가 있다. 정리하면, 하위 클래스의 인스턴스(객체)는 보다 위인 상위 클래스의 인스턴스(객체)로도 사용될 수 있다. 하지만 그 반대는 안 된다. 따라서 상위(부모) 클래스의 인스턴스(객체)는 하위(자식) 클래스의 인스턴스(객체)로 사용될 수 없다. class Person{} class Student extends Person{} public class Java100Ex17{ public static void main(String[] args) { // [1]: 객체 생성 Student s1 = new Student(); // 지극히 정상 --> 에러날 이유가 하나도 없다. // .. [인프런] 다형성, polymorphism, 개념, 학습 [1]: 다형성이란? 다형성이란 다양한 형태 또는 특성을 가진다는 의미. 자바와 같은 객체 지향 언어에서의 의미는 부모 클래스를 상속받은 자식 클래스의 인스턴스가 부모의 객체로도 사용되고, 뿐만 아니라 자식 클래스의 객체로도 사용될 수 있는 다양한 상황을 의미한다. [2]: 예시 부모 클래스 Bird가 있고, 이를 상속받은 자식 클래스 Parrot이 있다고 가정하자. 이때, "앵무새가 말을 하네.." 사람들이 이렇게 말할 수 있다. 그런데 앵무새는 새이기 때문에 "새가 말을 하네"라고도 말할 수 있다. [3]: 결론 정리하면 하위 클래스의 인스턴스(객체)는 보다 위인 상위 클래스의 인스터스(객체)로도 사용될 수 있다. 그런데 그 반대는 안 된다. 왜냐하면 "앵무새"는 분명 그 상위인 "새"라고 말할 수 .. [인프런] 인터페이스, 문법, 개념 예제로 공부하는 Java 100 문제풀이 Part.4 [1]: 인터페이스 추상 클래스와 거의 비슷하나 그 추상화 정도가 더 높다.(더 엄격) --> 일반 메서드나 멤버 필드(변수)를 가질 수 없다. 표준화 및 규격을 인터페이스로 제공 --> 일종의 "설계도" 개념. 따라서 어떤 클래스가 해당 인터페이스를 사용(상속)한다면 인터페이스에 선언되어져 있는 메서드를 구현. 인터페이스는 interface 키워드를 사용한다. 추상 클래스와 같이 메서드의 구체적인 내용은 기술되어져 있지 않으므로 인터페이스를 상속받은 클래스에서 재정의(오버라이딩)하여 사용. [2]: 상속 클래스는 "단일 상속"만 가능, 인터페이스는 "다중 상속"이 가능 --> 가장 큰 차이점. class --> extends interface -->.. [인프런] 인터페이스, interface, 개념 예제로 공부하는 Java 100 문제풀이 Part.4 - 인터페이스란 무엇인가? 사용자간 또는 컴퓨터간 통신이 가능하도록 해주는 디바이스나 프로그램. 즉, "규격"을 인터페이스라고 할 수 있고, 인터페이스는 하나의 "표준화"를 제공하는 것이라 할 수 있다. - 추상 클래스 vs 인터페이스 추상 클래스와 거의 비슷하나 그 추상화 정도가 더 높다. 따라서 일반 메서드 멤버 필드(변수)를 가질 수 없다. 이러한 점들이 추상 클래스와 인터페이스간 가장 큰 차이점 중 하나이다. - 자바에서의 인터페이스 문법 표준화 및 규격을 인터페이스로 제공한다. 따라서 어떤 클래스가 해당 인터페이스를 사용(상속)한다면 인터페이스에 선언되어져 있는 메서드를 구현해야 한다. 인터페이스는 class 키워드를 사용하지 않고 별도의 i.. [인프런] 추상, 클래스, 추상 클래스, 특징, 개념 예제로 공부하는 Java 100 문제풀이 Part.4 abstract class Animal{ // 부모 클래스 // 구체적인 내용은 작성하지 않고 공통적인 특징을 추상적으로 선언 --> 리턴값 조차도 없이 메서드명만 선언. abstract void cry(); // 추상 클래스 void eat() { System.out.println("먹다."); } } class Dog extends Animal{ // 자식 클래스 void cry() { System.out.println("멍멍"); } } class Cat extends Animal{ void cry() { System.out.println("야옹"); // 추상 클래스 재정의 } } class Cow extends Animal{ void cry(.. [인프런] 반복문, for문, 객체 배열 예제로 공부하는 Java 100 문제풀이 Part.3 class Person{ // Field private String name; private int age; // Constructor Person(){} Person(String name, int age){ this.name = name; this.age = age; } // Method public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class Java100_Ex.. [인프런] 객체, 참조값, 요소, 객체 배열 예제로 공부하는 Java 100 문제풀이 Part.3 class Person{ // Field private String name; private int age; // Constructor Person(){} Person(String name, int age){ this.name = name; this.age = age; } // Method public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class Java100_Ex.. [인프런] getter, setter, 클래스 예제로 공부하는 Java 100 문제풀이 Part.3 class Person{ // Field private String name; private int age; private int height; private int weight; // Constructor Person(){ } Person(String name, int age, int height, int weight){ this.name = name; this.age = age; this.height = height; this.weight = weight; } // Method public String getName() { return name; } public void setName(String name) { this.name = name; } .. 이전 1 ··· 3 4 5 6 7 8 9 10 다음