계승 과 조합 에 대하 여
4.567917.계승 이라는 것 은 대체적으로 익숙 하 다.유형 을 만 들 때 계승 과 관련된다.특정한 유형 을 명시 적 으로 계승 하 든 아래 의 코드 를 보 세 요
class Person{
protected String name;
protected int age;
public Person(){}
public Person(String name,int age){
this.name = name;
this.age = age;
System.out.println("class Person.");
}
}
class Student extends Person{
public Student(){}
public Student(String name,int age){
super(name,age);
System.out.println("class Student.");
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class Test {
public static void main(String[] args){
Student s = new Student(" ",20);
System.out.println(s);
}
}
// :
//class Person.
//class Student.
//Student{name=' ', age=20}
이렇게 하면 Student 는 필요 없 이 기본 Person 의 속성 을 가 질 수 있 습 니 다.이런 상황 에서 Student 는 Person 의 하위 대상 을 가 진 것 처럼 이 하위 대상 을 사용 하여 Person 과 관련 된 속성,동작 을 조작 할 수 있 습 니 다.전 제 는 Student 가 이런 것들 을 조작 할 권리 가 있다 는 것 입 니 다.
4.567917.이 물건 을 조합 하 는 것 이 더욱 간단 합 니 다.재 활용 이 필요 한 유형의 인용 을 새로운 클래스 에 두 고 새로운 유형의 도 메 인 변수 로 사용 하면 됩 니 다
class Person{
private String name;
private int age;
public Person(){
System.out.println("class Person.");
name = " ";
age = 20;
}
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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class Student{
public Person p = new Person();
public Student() {
System.out.println("class Student.");
System.out.println(p);
}
}
public class Test {
public static void main(String[] args){
Student s = new Student();
}
}
// :
//class Person.
//class Student.
//Person{name=' ', age=20}
위의 코드 에서 Student 류 는 Person 의 대상 을 직접 사용 하여 조작 합 니 다.이것 은 계승 과 매우 비슷 하지만 하 나 는 명시 적 이 고 하 나 는 암시 적 입 니 다.
그럼 우 리 는 어떤 방식 을 선택해 야 합 니까?
계승 에서 기본 클래스 와 도 출 류 의 관 계 는 is-a(무엇 입 니까)의 관계 에 해당 합 니 다.예 를 들 어 Person 은 인류 이 고 Student 는 학생 이 며 학생 은 한 사람 이 며 사람과 관련 된 속성 과 동작 을 가지 고 있 습 니 다.이것 은 바 꿀 수 없습니다.그러나 학생 은 한 사람 뿐만 아니 라 한 학생 이기 도 하고 학생 을 제외 한 다른 속성,동작,예 를 들 어 성적,숙제 등 을 가지 기 때문에 이것 은 계승 을 통 해 실현 할 수 있다.사람 을 바탕 으로 학생 의 속성 과 동작 을 증가 시 켜 도 출 류 Student 를 실현 할 수 있다.
그리고 조합 은 has-a 관계,즉 무엇 을 가지 고 있 는 지 에 해당 합 니 다.예 를 들 어 지금 은 제 가 혼자 입 니 다.저 는 외출 이 필요 합 니 다.하지만 걷 고 싶 지 않 습 니 다.저 는 제 가 운전 할 수도 있 고 버스 를 탈 수도 있 습 니 다.이런 것들 이 바로 제 가 사용 하 는 도구 입 니 다.저 는 이런 것들 을 가 져 갈 수 있 습 니 다.사람 을 가지 고 어떤 교통수단 을 물 려 받 는 것 이 아니 라?
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 두 수의 최대 공약수 구하 기 (세 가지 방법)자바 두 수의 최대 공약수 구하 기 (세 가지 방법) 1. 역법 전에 저도 몰 랐 습 니 다. 인터넷 에서 찾 아 봤 는데 0 과 0 이 아 닌 수의 약 수 는 모두 이 0 이 아 닌 숫자 입 니 다. 결실 2. 전...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.