1. 抽象类和接口的关系:
接口只提供关系功能,不提供具体实现。使用接口进行程序设计的核心思想是使用接口回调,
即接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调接类实现的接口方法。
抽象类中可以声明抽象方法,也可以添加方法具体实现; 但在接口中,只能声明抽象方法,不能有具体实现。
在抽象类中既可以声明常量,也可以声明变量,而在接口中只能声明常量,不能声明变量。
2. 子类和父类关系:
子类继承父类后,在实例化子对象之后,会默认自动调用父类的无参构造方法。
要想调用父类的有参构造方法,必须在子类的构造方法中调用super(name)方法。
3.
class StaticClass
{
public static int i;
public static int addNumber(int i,int j)
{
return i+j;
}
}
public class UseStaticMember
{
public static void main(String args[])
{
StaticClass S1 = new StaticClass();
S1.i = S1.addNumber(10,20);
System.out.println("10+20=" + S1.i);
StaticClass.i = StaticClass.addNumber(30,40);
System.out.println("30+40=" + StaticClass.i);
StaticClass S2 = new StaticClass();
System.out.println("StaticClass.i=" + S2.i);
}
}
//大家感觉这里输出的结果是什么? 前两项输出估计都不会错,但要注意这里的第
三项,S2.i 的结果, 重新实例化一个对象之后但结果仍为改变后的值,原因就是因为
i变量时静态的。