목록전체 글 (134)
기록장
package com.day3; public class Vehicle { public void run() { System.out.println("차량이달립니다."); } } 이렇게 부모클래스 만들고 package com.day3; public class Driver { public void drive(Vehicle vehicle) { vehicle.run(); } } package com.day3; public class Bus extends Vehicle { @Override public void run() { System.out.println("버스가 달립니다."); } } package com.day3; public class Taxi extends Vehicle{ @Override public v..
다형성이란 여러가지 형태를 가질 수 있는 능력이야 6~7장 반복 많이 해야 돼~ 다형성을 이해 못하면 이후에 추상클래스 인터페이스 이런거 이해를 못해~ //하나가 여러가지 형태를 가질 수 있어서 다형성이야~ 많을 다(多)/모양 형(形)// 누가 물어본다면 조상 타입 참조 변수로 多形性를 다루는게 다형성이야 라고 말하면 돼 조상타입 참조변수로 자손타입 객체를 가리키는거야~ (참조 변수 타입 상관없이 괜찮아) 자손이 물려받은 조상유전자+자기꺼 있으니까 기능이 더 많겠지? 그래서 자손타입객체 기능을 다 사용할순는 없어 Tv가 조상이고 스마트TV가 자손이라고 생각해보자 그러면 원래는 TV t = new 스마트Tv 이건 타입 불일치라서 안되는 거지만 가능한게 다형성이야~ 대신에 스마트TV = new TV 이런식으..

package com.day3; public class KumhoTire extends Tire { //필드 //생성자 public KumhoTire(String location, int maxRotation) { super(location, maxRotation); } //메소드 @Override public boolean roll() { ++accumulatedRotstion; if(accumulatedRotstion
다형성이란 여러가지 형태를 가질 수 있는 능력이야 6~7장 반복 많이 해야 돼~ 다형성을 이해 못하면 이후에 추상클래스 인터페이스 이런거 이해를 못해~ //하나가 여러가지 형태를 가질 수 있어서 다형성이야~ 많을 다(多)/모양 형(形)// 누가 물어본다면 조상 타입 참조 변수로 多形性를 다루는게 다형성이야 라고 말하면 돼 조상타입 참조변수로 자손타입 객체를 가리키는거야~ (참조 변수 타입 상관없이 괜찮아) 자손이 물려받은 조상유전자+자기꺼 있으니까 기능이 더 많겠지? 그래서 자손타입객체 기능을 다 사용할순는 없어 Tv가 조상이고 스마트TV가 자손이라고 생각해보자 그러면 원래는 TV t = new 스마트Tv 이건 타입 불일치라서 안되는 거지만 가능한게 다형성이야~ 대신에 스마트TV = new TV 이런식으..
final 키워드는 클래스 필드 메소드를 선언할때 사용 할 수 있어 해당 선언이 최종 상태이고 결코 수정될 수 없어 final 키워드는 클래스 필드 메소드 선언에 사용될 경우 해석이 조금씩 달라져 우리 앞에서 살펴본거 처럼 필드를 선언할 때 finad이 지정되면 초기값 설정 후 더 이상 값을 변경 할 수 없어 클래스,메소드 선언할떄 final 키워드가 지정되면 상속과 관련이 있다는 의미야 클래스 선언 시에 class 앞에 final 키워드를 붙이면 이클래스는 최종적인 클래스라서 상속할 수 없는 클래스가 돼 즉 파이널 클래스는 부모 클래스가 될 수 없어 (자식x) --> public final calss 클래스 { ... } 이렇게 ! final 클래스의 대표적인 예로는 자바 표준 API에서 제공하는 St..
package sec03.exam01; public class Calculator { double areaCircle(double r) { System.out.println("Calculator 객체의 areaCircle() 실행"); return 3.14569 * r * r; } } package sec03.exam01; public class Computer extends Calculator { @Override double areaCircle(double r) { System.out.println("Computer 객체의 areaCircle() 실행"); return Math.PI * r * r; } } 이렇게 위에는 부모클래스 밑에는 자식클래스 만들고 재정의해봤어 package sec03.exam..

메서드 오버로딩 -같은 이름의 메서드를 인자만 다르게 작성 메서드 오버라이딩 -부모클래스의 메서드를 자식클래스에서 재정의 --->메서드 오버라이딩 재정의 덮어쓰는거라고 했으니까 3번라인에 Shape에서--> 8번라인에 Circle로 덮어지고 -->13번 라인에 Square로 덮어짐 이 경우는 2라인 static가 있어서 메소드 오버라이딩이 안돼 ( 걍 오버라이딩이랑 다른 개념이고 각각 적용이 된다고 기억해~ 이 코드를 보고 이걸 풀어보자 A a = new B() 이 부분 보이지? 부모는 날 낳을 수 있으니까 A a = new B 가능 ->B에 있는걸만듦 a.f라는건 스테틱이잖아? 원래는 메소드 오버라이딩을 했기 때문에 B에 있는 요 f()가 호출되는게 맞아 근데 스테틱이잖아? -> 얘는 메소드 오버라이딩..
간단해 물려주는걸 상속이라고 해 프로그램에서는 자식이 부모를 선택하는거야 선택된 부모 클래스는 extends를 앞에 붙여 자식클래스 extends 부모클래스 { //필드 //생성자 //메소드 } package sec03.exam01; public class CellPhone { //필드 String model; String color; //생성자 //메소드 void powerOn() { System.out.println("전원을 켭니다");} void powerOff() { System.out.println("전원을 끕니다");} void bell() { System.out.println("벨이 울립니다");} void sendVoice(String message) {System.out.println("..