大家看看 在线请求解答 ! ! !

1.根据要求完成类A和类B的定义 已知接口A有唯一的抽象方法void a (),线程类B是接口A的实现类,要求B中的a(实现输出"这是第16周”,同时在构造B的实例时指定线程B的名字为"thread-B”,并启动线程B,在run ()中完成a () 的调用,即最后输出:thread-B 这是第16周

2.已知类A中有方法fn () 执行在当前目录下创建文件"1.txt" ,要求在类B的m ()中创建A的实例a并调用fn, 并在此处利用try、catch完成异常处理(即不是在类A里try catch),在main0中创建B的对象并调用m () ,根据上述要求完成类A和类B的定义,要求 书写规范,否则即使正确也会扣分

类A的定义:

public abstract class A {
    public abstract void a();

    public void fn() {
        try {
            File file = new File("1.txt");
            if (file.createNewFile()) {
                System.out.println("文件创建成功!");
            } else {
                System.out.println("文件已存在!");
            }
        } catch (IOException e) {
            System.out.println("创建文件失败:" + e.getMessage());
        }
    }
}

类B的定义:

public class B extends A implements Runnable {
    private String name;

    public B(String name) {
        this.name = name;
        Thread thread = new Thread(this);
        thread.start();
    }

    @Override
    public void run() {
        a();
    }

    @Override
    public void a() {
        System.out.println(name + " 这是第16周");
    }

    public void m() {
        A a = new A() {};
        a.fn();
    }
}

在 main() 方法中创建了 B 的实例,并调用了 m() 方法:

public static void main(String[] args) {
    B b = new B("thread-B");
    b.m();
}