2024.12.6

 

import java.util.ArrayList;  

 

public abstract class AbstractFile {  

    public abstract void add(AbstractFile element);  

    public abstract void remove(AbstractFile element);  

    public abstract void display();  

}  

 

public class Folder extends AbstractFile {  

    private ArrayList<AbstractFile> fileList = new ArrayList<>();  

    private String fileName;  

 

    public Folder(String fileName) {  

        this.fileName = fileName;  

    }  

 

    @Override  

    public void add(AbstractFile element) {  

        fileList.add(element);  

        String elementName = element.getClass().getSimpleName();  

        System.out.println(fileName + "添加了一个" + elementName);  

    }  

 

    @Override  

    public void remove(AbstractFile element) {  

        fileList.remove(element);  

        String elementName = element.getClass().getSimpleName();  

        System.out.println(fileName + "删除了一个" + elementName);  

    }  

 

    @Override  

    public void display() {  

        System.out.println(fileName);  

        System.out.println("-------" + fileName + "包括-------");  

        for (AbstractFile object : fileList) {  

            object.display();  

        }  

    }  

}  

 

public class ImageFile extends AbstractFile {  

    private String fileName;  

 

    public ImageFile(String fileName) {  

        this.fileName = fileName;  

    }  

 

    @Override  

    public void add(AbstractFile element) {  

        System.out.println("add ImageFile");  

    }  

 

    @Override  

    public void remove(AbstractFile element) {  

        System.out.println("remove ImageFile");  

    }  

 

    @Override  

    public void display() {  

        System.out.print(fileName);  

        System.out.println(" ImageFile");  

    }  

}  

 

public class TextFile extends AbstractFile {  

    private String fileName;  

 

    public TextFile(String fileName) {  

        this.fileName = fileName;  

    }  

 

    @Override  

    public void add(AbstractFile element) {  

        System.out.println("add TextFile");  

    }  

 

    @Override  

    public void remove(AbstractFile element) {  

        System.out.println("remove TextFile");  

    }  

 

    @Override  

    public void display() {  

        System.out.print(fileName);  

        System.out.println(" TextFile");  

    }  

}  

 

public class VideoFile extends AbstractFile {  

    private String fileName;  

 

    public VideoFile(String fileName) {  

        this.fileName = fileName;  

    }  

 

    @Override  

    public void add(AbstractFile element) {  

        System.out.println("add VideoFile");  

    }  

 

    @Override  

    public void remove(AbstractFile element) {  

        System.out.println("remove VideoFile");  

    }  

 

    @Override  

    public void display() {  

        System.out.print(fileName);  

        System.out.println(" VideoFile");  

    }  

}  

 

public class Main {  

    public static void main(String[] args) {  

        AbstractFile obj1, obj2, obj3, obj4;  

        Folder plate1, plate2, plate3;  

 

        obj1 = new ImageFile("a.jpg");  

        obj2 = new TextFile("b.txt");  

        obj3 = new VideoFile("c.mp4");  

        obj4 = new ImageFile("d.jpg");  

 

        plate1 = new Folder("文件夹1");  

        plate2 = new Folder("文件夹2");  

        plate3 = new Folder("文件夹3");  

 

        plate1.add(obj1);  

        plate1.add(obj2);  

        plate2.add(obj3);  

        plate3.add(obj4);  

 

        Folder mainFolder = new Folder("主文件夹");  

        mainFolder.add(plate1);  

        mainFolder.add(plate2);  

        mainFolder.add(plate3);  

 

        mainFolder.display();  

    }  

}

posted @ 2024-12-06 09:21  kuku睡  阅读(8)  评论(0)    收藏  举报