导入和扩展类有什么区别?

sel*_*vam 11 java

在Java中导入和扩展类有什么区别

jjn*_*guy 19

这是两件截然不同的事情.

导入一个类就是这样,你可以使用该类,而无需在你正在编写的当前类中限定全名.

import java.util.Scanner
// now you can use the Scanner class in your code like so:
Scanner stdin = new Scanner(System.in);
// instead of having to do
java.util.Scanner stdin = new java.util.Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)

扩展一个类是创建一个新类,它是某个其他类的子类.这将允许您添加或更改要扩展的类的功能.

// this is a very contrived example
public class EmptyList extends ArrayList {
    @Override
    public boolean add(Object o){
        return false; // will not add things to a list
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Justin - 您可能想澄清导入意味着"您可以在当前班级中使用该班级**而无需资格**".你仍然可以*使用*`Scanner`而无需导入它,你只需要在整个源代码中将它称为`java.util.Scanner`.对我来说,这是一个重点; 导入一个类不会"做"任何事情,它只是语法糖,使后续声明更短. (3认同)

小智 5

导入不会改变您的程序,它只是允许您编写声明类的简短形式。在您自己的类中,您可以使用 Java 库中任何包中的任何其他类。
假设您想使用 Scanner 类从键盘获取输入。java.util.Scanner sc = new java.util.Scanner(System.in);您可以简单地写而不是写Scanner sc = new Scanner(System.in);
如果您导入包或包后跟类顶部的类名,即 importjava.util.*;或 import java.util.Scanner;

扩展一个类并不像导入一个类那么简单。当您扩展类时,您将扩展类的所有实例(字段)和方法添加到您自己的类中。换句话说,您可以访问扩展类的所有字段和方法。