1.类(静态变量)方法与实例方法以及类变量(静态变量)与实例变量的区别。
实例变量:没有static修饰的成员变量为实例变量,实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。结合上述给出的例子。
类变量:有static修饰的变量,静态变量不属于某个实例对象,而是属于整个类。只分配一份拷贝;可以再该类外直接用类名调用,而不是实力对象那样需要通过实例对象才能访问。(类似于C语言中的static关键字)。
实例方法:实例方法可以被类创建的所有对象调用,还有一点需要注意,当我们创建第一个类的对象时,实例方法的入口地址会完成分配,当后续在创建对象时,不会再分配新的入口地址,也可以说,该类的所有对象共享实例方法的入口地址,当该类的所有对象被销毁,入口地址才会消失。
类方法:1.在类的成员方法声明中带有static关键字,类方法通过类名而不是通过实例对象访问。2.因为类方法的调用不是通过实例对象进行的,所以在类方法中没有this指针,不能访问所属类的非类变量和方法,只能访问方法体内的局部变量、自己的参数和静态变量。3.子类不能重写父类的静态方法,但在子类中可以声明与父类静态方法相同的方法,从而将父类的静态方法隐藏。另外子类不能吧父类的非静态方法重写为静态的。
2.什么是接口?接口的意义是什么?
Java中的接口(interface)就是不同类的相同方法抽象出来,接口中声明了方法,但是不定义方法体;接口只是定义了一组对外的公共接口。一个类可以实现多个接口,在implements子句中用逗号分隔。
4.什么是抽象类?抽象类和接口有什么区别?
Java允许在类中只声明方法而不提供方法的实现。这种只有声明而没有方法体的方法称为抽象方法;而包含一个或多个抽象方法的类称为抽象类。抽象类必须在声明中加abstract关键字,抽象方法也要加。抽象类也可以有构造方法、普通的成员变量或方法,也可以派生抽象类的子类。抽象类不能创建抽象类的实例。如果抽象类的子类实现了抽象方法,则可以创建该子类的实例对象,否则该子类也是抽象类,不能实例化。
抽象类与接口的区别:一、接口中所有的方法都是抽象的,而抽象类可以定义带有方法体的 不同方法。
二、一个类可以实现多个接口,但只能继承一个抽象父类
三、接口与实现它的类不构成类的继承体系,即接口不是类体系的一 部分。因此,不相关的类也可以实现相同的接口。而抽象类是属 于一个类的继承体系,并且一般位于类体系的顶层。
本文详细解释了Java中的实例变量与类变量的区别,实例方法与类方法的不同之处,接口的概念及其意义,以及抽象类的定义和它与接口之间的差异。
27万+

被折叠的 条评论
为什么被折叠?



