[JAVA] 객체배열, 상속

Dawon Ruby Choi·2023년 8월 31일
0

Java

목록 보기
13/18
post-thumbnail

객체배열

기본 자료형으로 만든 배열이 아닌, 참조자료형을 가지고 만드는 배열

참조자료형은 실제값을 갖고있는게 객체이기 때문에, 객체를 집어넣어 주어야함
아래 방법으로 초기화

참조자료형의 기본 값 : null

ex)

aArr[0]/aArr[1]/aArr[2] : 참조자료형은 각 인덱스마다 주소값을 갖고 있기 때문에 arr이 하나의 참조변수가 됨

상속 (Inherit)

상속 : 부모클래스가 자식 클래스(새로 작성할 클래스)에게 멤버(필드, 메소드)를 쓸 수 있게 공유해주는 것

상속 표현식
자식클래스 extends(예약어) 부모클래스

상속의 특징
1. private도 상속은 가능하나 접근 불가
2. 모든 클래스는 Object클래스의 후손

3. 단일 상속만 지원 (다중 상속을 지원하기위해 여러번의 단일 상속을 할 수 있게 지원 == 부모클래스를 여러개 둘 수 있도록)

super 부모객체의 주소값을 갖고잇는 reference 변수
(this 내 객체를 가르키는 reference 변수)

  • super를 사용하는 이유 : 나의 클래스가 아니기 때문에 호출 용도
public Child2() {
		//super.num = 1; // private 당연히 안됨
		super.dNum = 0.0;
		super.bool = false; // 상속 상관 없이 같은 패키지라 가능
		super.ch = 'B';

상속 예시)
부모클래스

package com.kh.example.animal.model.vo;

public class Animal {
	private String name;
	private int age;
	private double weight;
	
	public Animal() {}
	public Animal(String name, int age, double weight) {
	this.name =name;
	this.age =age;
	this.weight =weight;
	
	}
	
	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 double getWeight() {
		return weight;
	}
	
	public void setWeight (double weight) {
		this.weight = weight;
	}
	
	public String inform() {
		return name + "," + age + "," + weight;
	}
}

자식클래스

package com.kh.example.animal.model.vo;

public class Snake extends Animal {
	
	private String pattern;
	
	public Snake() {}
	public Snake(String name, int age, double weight, String pattern) {
		super(name,age,weight);
		this.pattern = pattern; //위 인자값들을 가져와서 필드에 넣어주겠다 라는 초기화
	}
	public String getPattern() {
		return pattern;
	}
	
	public void setPattern (String pattern) {
		this.pattern = pattern;
	}
	
	public String inform() {
		return super.inform() + " " + pattern;
	}
}
profile
나의 코딩 다이어리🖥️👾✨

0개의 댓글