1、JAVA不支持多重继承,子类只能有一个父类。类声明中,用关键字extends来声明一个类是另外一个类的子类。
2、子类和父类在同一个包中,子类自然继承了其父类中不是private的成员变量和方法作为自己的,访问权限不变。不在同一个包中,子类继承父类的protecded,public成员变量和方法,子类不能继承父类的友好变量和方法。
3、在子类中定义的成员变量只要和父类中的成员变量同名时(不管变量的类型),子类就隐藏了继承的成员变量。方法重写:子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同。重写的方法既可以操作继承的成员变量,也可以操作子类声明定义的成员变量。重写父类方法时,不可以降低方法的访问权限。
4、子类使用super调用父类的构造方法,必须是子类构造函数中的第一条语句。若不用,表示隐式地调用父类不带参数的构造方法。在子类中使用父类被隐藏的成员变量和方法时使用 super.父类成员变量名,super.父类方法名。
5、用final声明的类不能被继承,不能有子类。
6、若B是A的子类或间接子类,则A a;a=new B();OR A a;B b=new B();a=b;那么称对象a是子类对象b的上转型对象。上转型对象不能操作子类声明的成员变量和方法。但可操作子类继承的成员变量、隐藏的成员变量、继承的和重写的方法。可以将对象的上转型对象再强制转换到一个子类对象,这时该子类对象又具备了子类的所有属性和功能。不可以将父类创建的对象的引用赋值给子类声明的对象。
7、上转型对象操作子类继承或重写的方法时,就是统通知对应的子类对象去调用这些方法。如果子类重写了父类的某个方法后,对象的上转型对象调用这个方法时,一定是调用了这个重写的方法。
8、用关键字abstract修饰的类称为抽象类。abstract类不能用运算符new创建对象,必须产生其子类,由子类创建对象。抽象类类体中可以有abstract方法,此方法只允许声明,不允许实现。如果一个非抽象类是一个抽象类的子类,它必须具体实现父类的抽象方法,既重写父类的抽象方法。抽象类可以没抽象方法,但如果一个类体中有抽象方法,那么这个类必须用abstract修饰。
9、接口用interface声明,和类声明相似。接口体中包含常量的定义和方法的定义,其中只进行方法的声明,不允许实现。一个类使用implents声明实现一个或多个接口(多个时,用逗号隔开)。如果一个类实现某个接口,那么必须实现该接口所有方法。在类中实现时,方法的名字,返回类型,参数个数及类型必须与接口中完全一致。接口中方法默认是public和abstract的,接口声明可以省略,类实现时,一定要用public修饰。如果接口方法返回类型不是void,那么类中实现时至少要有一个return。
10、可以把使用某一个接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。当一个方法的参数是一个接口类型时,如果一个类实现了该接口,那么就可以把该类的实例引用传值给该参数,参数可以回调类实现的方法。
11、外嵌类的成员变量在内部类中有效,内部类中的方法也可以调用外嵌类中的方法,外嵌类可以把内部类声明对象作为外嵌类的成员变量。
12、用class 名称<泛型列表>声明一个类,成为泛型类。泛型列表中,并没有指定是何种类型的数据,可以是任何对象或接口,但不能是基本数据类型。使用泛型类声明对象时,必须要指定类中使用泛型的具体实际类型。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/richard_2010/archive/2007/04/12/1561565.aspx