클래스 정리 순서 (방법의 실행 순서)
3835 단어 메서드
package com.payton.polymorphism;
class Characteristic {
private String s;
Characteristic(String s){
this.s = s;
System.out.println("Create Characteristic " + s);
}
protected void dispose() {
System.out.println("finalizing Characteristic.");
}
}
class Description {
private String s;
Description(String s){
this.s = s;
System.out.println("Create Description " + s);
}
protected void dispose() {
System.out.println("finalizing Description.");
}
}
class LivingCreature {
private Characteristic p = new Characteristic("is alive");
private Description t = new Description("Basic Living Creature");
LivingCreature(){
System.out.println("LivingCreature()");
}
protected void dispose() {
System.out.println("LivingCreature dispose.");
t.dispose();
p.dispose();
}
}
class Animal extends LivingCreature {
private Characteristic p = new Characteristic("has heart");
private Description t = new Description("Animal not vegetable");
Animal(){
System.out.println("Animal()");
}
protected void dispose() {
System.out.println("Animal dispose.");
t.dispose();
p.dispose();
super.dispose();
}
}
class Amphibian extends Animal {
private Characteristic p = new Characteristic("can live in the water");
private Description t = new Description("Both water and land");
Amphibian(){
System.out.println("Amphibian()");
}
protected void dispose() {
System.out.println("Amphibian dispose.");
t.dispose();
p.dispose();
super.dispose();
}
}
public class Frog extends Amphibian{
private Characteristic p = new Characteristic("Croaks");
private Description t = new Description("Eats Bugs");
Frog(){
System.out.println("Frog()");
}
protected void dispose() {
System.out.println("Frog dispose.");
t.dispose();
p.dispose();
super.dispose();
}
public static void main(String[] args) {
Frog frog = new Frog();
System.out.println("Bye!");
frog.dispose();
}
}
결과:
Create Characteristic is alive
Create Description Basic Living Creature
LivingCreature()
Create Characteristic has heart
Create Description Animal not vegetable
Animal()
Create Characteristic can live in the water
Create Description Both water and land
Amphibian()
Create Characteristic Croaks
Create Description Eats Bugs
Frog()
Bye!
Frog dispose.
finalizing Description.
finalizing Characteristic.
Amphibian dispose.
finalizing Description.
finalizing Characteristic.
Animal dispose.
finalizing Description.
finalizing Characteristic.
LivingCreature dispose.
finalizing Description.
finalizing Characteristic.
방법의 집행 순서는 클래스의 호출 순서와 상반된다.
먼저 계승류를 집행하는 방법, 그리고 파생류를 집행하는 방법, 마지막으로 기류를 집행하는 방법.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 헷갈리는 메서드 정리메서드 종류들을 정리합니다. toString(); Object 최상위클래스의 메서드 항상 있음! trim(); space 없앰! 단, 양쪽 앞뒤 만 제거함! substring(3) : 문자짜르기, 인덱스3번째부터 나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.