1. Java只支持单继承,不支持多继承。Java支持多层继承(继承体系)。
2. super关键字:
1)super和this的用法相同。
2)this代表本类引用。
3)super代表父类引用。
4)当子父类出现同名成员时,可以用super进行区分。
5)子类要调用父类构造函数时,可以使用super语句。
3. 函数覆盖:1)覆盖时,子类方法权限一定要大于等于父类方法权限。2)静态只能覆盖静态。
4. 子类的实例化过程:1)子类中所有的构造函数默认都会访问父类中空参数的构造函数,因为每一个构造函数的第一行都有一条默认的语句 super();
2)子类会具备父类中的数据,所要先明确父类是如何对这些数据初始化的。
3)当父类中没有空参数的构造函数时,子类的构造函数必须通过this或者super语句指定要访问的构造函数。
5. final关键字:1)final可以修饰类,方法,变量。
2)final修饰的类不可以被继承。
3)final修饰的方法不可以被覆盖。
4)final修饰的变量是一个常量。只能被赋值一次。
6. 抽象类:Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。
特点:1)抽象类和抽象方法必须用abstract关键字来修饰。
2)抽象方法只有方法声明,没有方法体,定义在抽象类中。格式:修饰符abstract 返回值类型函数名(参数列表) ;
3)抽象类不可以被实例化,也就是不可以用new创建对象。
4)抽象类通过其子类实例化,而子类需要覆盖掉抽象类中所有的抽象 方法后才可以创建对象,否则该子类也是抽象类。
7. 抽象类中是否有构造函数? 答:抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法。
8.抽象类中可不可以没有抽象方法?答:可以没有抽象方法。
9. 接口: interface {}
1)接口中的成员修饰符是固定的。
2)成员常量:public static final
成员函数:public abstract
3)接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。
4)接口与接口之间可以有继承关系。
10. 多态:某一类事物的多种存在形态。
11. 内部类:将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)。
访问特点:1)内部类可以直接访问外部类中的成员,包括私有成员。
2)外部类要访问内部类中的成员必须要建立内部类的对象。
12. 内部类的位置
内部类定义在成员位置上:1)可以被private static成员修饰符修饰。
2)被static修饰的内部类只能访问外部类中的静态成员。
内部类定义在局部位置上:1)可以直接访问外部类中的成员。
2)可以访问所在局部中的局部变量,但必须是被final修饰的。
13. 匿名内部类:就是内部类的简化写法。
前提:内部类可以继承或实现一个外部类或者接口。
格式为:new 外部类名或者接口名(){覆盖类或者接口中的代码, (也可以自定义内容。)}
简单理解:就是建立一个建立一个带内容的外部类或者接口的子类匿名对象。