------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、继承
1.变量,如果子类中出现非私有的同名成员变量时
子类访问本类变量,用this。
子类访问父类的同名变量用super。
使用extends表继承关系。
2.函数,存在复写功能
当子类继承父类,沿袭了父类到子类中,具备该功能,功能内容却和父类不一致,使其保留父类功能,并重写功能内容。
父子函数必须一模一样才能重写。包括返回类型。
提高拓展性,可用super.函数();直接调用父类函数
注:①.子类重写父类函数,必须子类权限大于等于父类权限。
②.静态只能复写静态。
3.构造函数,第一行默认super();
子类直接获取父类数据,子类在对象初始化时,要先访问父类中的构造函数,可以手动指定。
子类所有的构造函数都默认访问父类中空参数的构造函数,
子类的非空参数构造函数第一行this访问本类构造函数,但和super()冲突,子类至少有一个函数会访问父类中的构造函数。
最父类,Obiect。
三、关键字final
1.作为一个修饰符,可以修饰类、函数、变量
2.被final修饰的类不可以被继承
3.被final修饰的函数不能被重写
4.被final修饰的变量是一个常量只能被赋值一次,所有字母大写,单词用_连接。
四、抽象类
1.关键字abstract,当多个类出现相同功能,但功能主体不同
2.可以向上抽取,只抽取功能定义,而不抽取功能主体
3.抽象方法一定在抽象类中
4.抽象类不能被new创建对象,调用无意义,必须由子类复写调用,子类复写一部分方法,子类还是抽象类。
五、模板方法设计模式
在定义功能时,功能的一部分是确定,但是有一部分是不确定,由子类复写去完成不确定部分,也就是用抽象类设计具备一定功能的模板
六、接口interface
1.接口常见定义;常量、抽象方法。
2.接口中的成员都有固定修饰符
常量:public static final 方法:public abstract
3.接口可以被类多实现。使用连接符implements实现。
4.一个类extend一个类implements多个接口用,隔开。
5.接口与接口可以多继承。
6.接口是对外暴露的规则,是程序的功能扩展,可以进行多实现
七、多态
1.多态的体现:父类的引用指向了自己的子类对象。
2.多态的前提:必须是类与类之间有关系,要么继承,要么实现。
3.多态的好处:多态的出现大大提高程序的扩展性。
4.多态的应用:建立工具条。
5.多态的弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。访问子类的需要进行强制向下转型。
非静态成员函数在多态调用时,编译看左,运行看右。
在多态中,成员变量和静态成员函数,无论编译和运行都参考左边。
八、内部类
1.访问规则:①内部类可以直接访问外部类中的成员
②外部类要访问内部类,必须建立内部类对象,(内部类可以私有)。
③内部类持有一个外部类的引用 外部类名.this
④内部类在成员位置上,就可以被修饰符修饰,用pricate进行封装,静
态后,只能访问外部静态成员。
外部类名.内部类名 变量 = 外部类对象. 内部类对象
⑤外部其他类调用内部静态类成员 外部类名.内部类名.函数();
2.内部定义原则:当描述事物时,事物的内部还有事物,该事物用内部类来描述,因为内部事物在使用外部事物的内容。
3.局部内部类的特点:①不可以被成员修饰符修饰
②可以直接访问外部类的成员,但是访问它所在局部中的变量
只能访问被final修饰的局部变量
4.匿名内部类:
1)匿名内部类其实就是内部类的简写格式,也就是匿名子类对象
2)定义匿名内部类的前提,内部类必须继承一个类或者实现接口
3)匿名内部类定义的方法最好不超过3个。可以多态方法调用多个子类复写的法
new Demo(){
void show1(){}
void show2(){}}.show();