2010-08-12 36 views

回答

17

这些是两个完全不同的东西。

导入一个类,使它可以使用该类,而无需限定当前正在编写的类中的全名。

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); 

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

// 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 
    } 
} 
+0

不会编译,添加必须返回true或false! – 2010-08-12 13:52:05

+0

@Tim,为什么不编译?仅仅因为缺少返回值? – jjnguy 2010-08-12 13:53:32

+0

〜booelan也有错字。 – 2010-08-12 14:02:42

3

时,在你的类,你引用类,是不是在同一个包类,则需要进口另外一个。

当你想使用oop inheritance时,你的扩展了一个类 - 即你的类具有超类的功能+无论你在类中写什么。

这两件事情是非常不同的,所以也许你应该创建一些简单的程序,并为自己看到明显的差异。

-3

导入是一个可选子句,用于声明您将在您的潜在类接口或枚举中使用哪个类。扩展表示,她可以使用该父类的功能。

要扩展公共类,您需要首先导入它。

+0

这几乎是完全错误的。您可以在不导入的情况下扩展一个类。您可以在不导入它的情况下使用某个类,因此导入不会形成“意向声明”。扩展在访问权限之外有许多分支,只允许一个类访问父级的'protected'成员,并且在任何情况下都不需要使用父级的'public'功能。 – 2010-08-12 14:08:27

+0

@Andrzej Doyle:我们可以说不用导入关键字来扩展类,而是添加整个路径。你对这个“意向声明”是真实的。换句话说,如果我写这样的smtg“扩展班级公开课,你应该导入它或使用完整的路径”,这是一个巨大的我的大脑捷径。我碰巧;-)。 – 2010-08-12 14:27:53

3

导入意味着您可以以非限定的方式引用它。例如

import java.util.List; 

List list = ... 

而非

java.util.List list = 

延伸的是完全不同的装置,以及从类

1

扩展
扩展手段增强现有的功能继承行为和结构类。 导入
导入意味着使用一些API作为助手到你的课堂去设计。

4

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

扩展类是不作为进口类一样简单。当你扩展一个类时,你将扩展类的所有实例(字段)和方法添加到你自己的类中。换句话说,您可以访问扩展类的所有字段和方法。

+0

不是私人的。 (为什么回答这样的旧问题,已经有一个很好的,被接受的答案?) – 2012-10-14 13:19:45

1

首先,进口是用于增加编译器的效率,找到正确的类 的主要区别,采用的是进口的使用聚合(已-A)的概念&在扩展我们使用(IS-A)的关系
在has-a或import中,我们类的obj并不维护与导入类的生存关系,我们需要获取我们想要在我们的应用程序中使用的特定类的obj ,但是在扩展我们班的obj的时候是make与父类的生活时间关系... HAPPY如果我对其他人明智地给予正确回答......

1

导入一个类为我们提供了访问其预定义的方法.we cn不要改变这些方法,但我们可以使用它们。扩展一个类意味着我们可以重写继承的类中定义的方法。

0

软件包导入只是一种告诉类加载器在哪里寻找类并区分具有相同名称的类的方法。类扩展告诉JVM你的类之间的等级关系。 OO规则一旦找到类就适用。

0

简单:

进口是指拥有关系。用关键字

延伸指的是是一个的关系。用关键字延伸

请参考this链接的例子。

+0

链接已经死了... – 2014-01-22 11:40:46

+0

编辑@KorayTugay :) – ram 2014-01-22 11:48:49

相关问题