자바 추상 류,계승 및 다 중 및 어댑터 의 실현 코드
방법 재 작성 은 자바 언어 다 중 특성 으로 다음 과 같은 조건 을 만족 시 켜 야 합 니 다.
4.567917.자 류 에서 방법 명칭 은 부 류 방법 명칭 과 완전히 같다.
슈퍼 키워드
슈퍼 키 워드 는 this 와 유사 합 니 다.슈퍼 는 슈퍼()와 같은 부모 클래스 의 대상 을 수식 합 니 다.부모 클래스 의 기본 무 참 구조 기 를 호출 합 니 다.
자바 추상 클래스
추상 적 특징
4.567917.추상 류 는 보통 추상 적 인 방법 을 포함 하고 비 추상 적 인 방법 도 포함한다추상 류 는 final 키 워드 를 사용 할 수 없습니다추상 류 자 체 는 예화 할 수 없다추상 류 는 바로 계승 되 는 것 이다추상 류 의 계승
4.567917.자 류 는 반드시 아버지 류 의 모든 추상 적 인 방법 을 실현 해 야 한다.
4.567917.만약 에 자 류 가 override 가 아버지 류 의 추상 적 인 방법 을 실현 했다 면 간접 자 류 는 이 방법 을 실현 하지 않 아 도 된다어댑터
어댑터,클래스 이름+Adapator 를 정의 합 니 다.예 를 들 어 MamalAdapator.아버지 에 게 물 려 주 는 모든 방법 이 텅 비 었 다.뒤의 인 스 턴 스 클래스 는 이 어댑터 를 계승 하면 일부 부모 클래스 를 실현 하 는 방법 을 선택 적 으로 다시 쓸 수 있 습 니 다4.567917.추상 류 는 하나의 추상 적 인 방법 만 제공 한 다음 에 하위 류 가 override 를 계승 하고 재 작성 하도록 제공 한 다음 에 특히 override 의 이 기능 을 할 수 있다.예 를 들 어 Dog.eat,Cat.eat,서로 다른 유형 은 서로 다른 방법 으로 실현 할 수 있 지만 방법 명칭 은 모두 같 아서 개발 에 큰 유연성 을 제공 했다.뒤의 프로그래머 가 개발 을 맡 았 을 때예 를 들 어 Tiger.eat 를 추가 해 야 합 니 다.Tiger 류 가 부 류 를 계승 하고 override 하 는 eat 방법 을 하나 더 쓰 면 됩 니 다
/**
* 1 Eclipse Java , Counter ,
* Counter ,
* ? Counter .
*/
public class Test {
public static void main(String[] args) {
// new
Counter cou = new Add();
// addition
System.out.println("3+9 "+cou.addition(3,9));
}
}
/**
* 1 Eclipse Java ,
* Counter , Counter
* ,
* ? Counter
* .
*/
// Counter
public abstract class Counter {
// addition
public abstract int addition(int num1, int num2);
public Counter(){
System.out.println(" Counter ");
}
}
/**
* 1 Eclipse Java ,
* Counter , Counter
* ,
* ? Counter
* .
*/
public class Add extends Counter{
int num1 = 0;
int num2 = 0;
//
@Override
public int addition(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
return num1+num2;
}
public Add(){
System.out.println(" Add ");
}
}
분할선
/**
*2 , “ ”,
* ( , , ), ,
* , , ,
* .
* , , ,
* 2 ,
* 2 , ,
* , .
*
* 3 2 , , ,
* , ,
* , , 2 .
*/
package tool.test;
import tool.abstracts.Construct;
import tool.abstracts.Tool;
import tool.abstracts.Traffic;
import tool.imp.Car;
import tool.imp.Hammer;
public class Test {
public static void main(String[] args) {
// ,
Tool tool1 = new Traffic() {
@Override
public void constructTool() {
}
};
tool1.trafficTool();
Tool tool2 = new Construct() {
@Override
public void trafficTool() {
}
};
tool2.constructTool();
// ,
Traffic traffic = new Car();
traffic.trafficTool();
Construct construct = new Hammer();
construct.constructTool();
}
}
/**
*2 , “ ”,
* ( , , ), ,
* , , ,
* .
* , , ,
* 2 ,
* 2 , ,
* , .
*
* 3 2 , , ,
* , ,
* , , 2 .
*/
package tool.abstracts;
// tool
public abstract class Tool {
//
public abstract void trafficTool();
//
public abstract void constructTool();
}
/**
*2 , “ ”,
* ( , , ), ,
* , , ,
* .
* , , ,
* 2 ,
* 2 , ,
* , .
*
* 3 2 , , ,
* , ,
* , , 2 .
*/
package tool.abstracts;
//
public abstract class Traffic extends Tool {
public void trafficTool(){
System.out.println(" ");
};
}
/**
*2 , “ ”,
* ( , , ), ,
* , , ,
* .
* , , ,
* 2 ,
* 2 , ,
* , .
*
* 3 2 , , ,
* , ,
* , , 2 .
*/
package tool.abstracts;
//
public abstract class Construct extends Tool {
public void constructTool(){
System.out.println(" ");
};
}
/**
*2 , “ ”,
* ( , , ), ,
* , , ,
* .
* , , ,
* 2 ,
* 2 , ,
* , .
*
* 3 2 , , ,
* , ,
* , , 2 .
*/
package tool.adaptor;
import tool.abstracts.Construct;
// Construct
public class ConstructAdaptor extends Construct {
//
@Override
public void trafficTool() {
}
//
@Override
public void constructTool() {
}
}
/**
*2 , “ ”,
* ( , , ), ,
* , , ,
* .
* , , ,
* 2 ,
* 2 , ,
* , .
*
* 3 2 , , ,
* , ,
* , , 2 .
*/
package tool.adaptor;
import tool.abstracts.Traffic;
// Traffic
public class TrafficAdaptor extends Traffic {
//
@Override
public void trafficTool() {
System.out.println(" ");
}
//
@Override
public void constructTool() {
}
}
/**
*2 , “ ”,
* ( , , ), ,
* , , ,
* .
* , , ,
* 2 ,
* 2 , ,
* , .
*
* 3 2 , , ,
* , ,
* , , 2 .
*/
package tool.imp;
import tool.adaptor.TrafficAdaptor;
//
public class Car extends TrafficAdaptor {
@Override
public void trafficTool() {
System.out.println(" ");
}
}
/**
*2 , “ ”,
* ( , , ), ,
* , , ,
* .
* , , ,
* 2 ,
* 2 , ,
* , .
*
* 3 2 , , ,
* , ,
* , , 2 .
*/
package tool.imp;
import tool.adaptor.ConstructAdaptor;
//
public class Hammer extends ConstructAdaptor {
@Override
public void constructTool(){
System.out.println(" ");
}
}
분할 선
/**
* 4 , .
* , , ,
* java ,
* , ,
* , java
* .
*/
package test;
import abstracts.Tool;
import imp.*;
// Test
public class Test {
public static void main(String[] args) {
// Person
Person per = new Person();
// ,
Tool car = new Car();
Tool plane = new Plane();
Tool print = new Printer();
Tool laptop = new Laptop();
//
per.useTool(car);
per.useTool(plane);
per.useTool(print);
per.useTool(laptop);
}
}
/**
* 4 , .
* , , ,
* java ,
* , ,
* , java
* .
*/
package abstracts;
//
public abstract class Tool {
//
public abstract void travel();
//
public abstract void print();
//
public abstract void study();
}
/**
* 4 , .
* , , ,
* java ,
* , ,
* , java
* .
*/
package adaptor;
import abstracts.Tool;
// , 3
public class ToolAdaptor extends Tool {
@Override
public void travel() {
}
@Override
public void print() {
}
@Override
public void study() {
}
}
/**
* 4 , .
* , , ,
* java ,
* , ,
* , java
* .
*/
package imp;
import adaptor.ToolAdaptor;
// ,
public class Car extends ToolAdaptor {
@Override
public void travel() {
System.out.println(" ");
}
}
/**
* 4 , .
* , , ,
* java ,
* , ,
* , java
* .
*/
package imp;
import adaptor.ToolAdaptor;
// ,
public class Plane extends ToolAdaptor {
@Override
public void travel(){
System.out.println(" ");
}
}
/**
* 4 , .
* , , ,
* java ,
* , ,
* , java
* .
*/
package imp;
import adaptor.ToolAdaptor;
// ,
public class Laptop extends ToolAdaptor {
@Override
public void study(){
System.out.println(" Java");
}
}
/**
* 4 , .
* , , ,
* java ,
* , ,
* , java
* .
*/
package imp;
import adaptor.ToolAdaptor;
// ,
public class Printer extends ToolAdaptor {
@Override
public void print() {
System.out.println(" ");
}
}
/**
* 4 , .
* , , ,
* java ,
* , ,
* , java
* .
*/
package imp;
import abstracts.Tool;
// Person
public class Person {
// , tool , tool
public void useTool(Tool tool){
tool.travel();
tool.print();
tool.study();
}
}
이상 은 자바 추상 류,계승 및 다 형 및 어댑터 의 실현 에 대한 상세 한 내용 입 니 다.자바 추상 류 계승 다 형 에 관 한 자 료 는 우리 의 다른 관련 글 에 관심 을 가 져 주 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.