1.继承的概念由来:
1:is a 关系 (学生是人)
2:has a 整体与部分
2.继承的特点:
1:描述类和类之间的关系
2:降低类和类之间的重复代码
3:降低对象和对象之间的代码重复使用静态变量
4:降低类和类之间的代码重复使用就继承
3.继承使用的方法:
1.继承使用extends关键字实现
4.继承细节:
1:类名的设定,被继承的类称之为父类(基类),继承的类称之为子类
2:子类并不能继承父类中所有的成员
1:父类定义完整的成员 静态成员,非静态,构造方法。静态变量和静态方
法都可以通过子类名.父类静态成员的形式调用成功。
2:所有的私有成员不能继承,private修饰的成员。
3:构造函数不能被继承
3:如何使用继承
1:不要为了使用继承而继承。工人和学生都有共性的成员,不要为了节省代
码,让工人继承学生。
4:java只支持单继承
5.Super关键字
1:主要存在于子类方法中,用于指向子类对象中父类对象。
2:访问父类的属性
3:访问父类的函数
4:访问父类的构造函数
6.重写的使用:
1: 在继承中,子类可以定义和父类相同的名称且参数列表一致的函数,将这种函数称之为函数的重写
2.必须要有继承关系
3:当子类重写了父类的函数,那么子类的对象如果调用该函数,一定调用的是重写过后的函数。
可以通过super关键字进行父类的重写函数的调用。
3: 继承可以使得子类增强父类的方法
4.细节:
1: 函数名必须相同
2:参数列表必须相同
3: 子类重写父类的函数的时候,函数的访问权限必须大于等于父类的函数的访问权限否则编译报错
4:子类重写父类的函数的时候,返回值类型必须是父类函数的返回值类型或该返回值类型的子类。不 能返回比父类更大的数据类型: 如子类函数返回值类型是Object
5.子类对象查找属性或方法时的顺序:
(1)就近原则
1.如果子类的对象调用方法,默认先使用this进行查找,
2.如果当前对象没有找到属性或方法,找当前对象中维护的super关键字指向的对 象,
3.如果还没有找到编译报错,找到直接调用。
7.重写和重载的区别:
1:重载(overload):
1:前提: 所有的重载函数必须在同一个类中
2:特点:
函数名相同,参数列表不同,与其他的无关(访问控制符、返回值类型)
3:不同:
个数不同 、 顺序不同、 类型不同
8.instanceof 关键字 (是哪个实例)
9.final常量的使用
1:final关键字主要用于修饰类、类成员、方法、以及方法的形参。
final修饰成员属性:
1:说明该成员属性是常量,不能被修改。public static final double PI=3.14;
1:public :访问权限最大
2:static :内存中只有一份
3:final :是一个常量
4:常量名大写
5:必须初赋值。
2.使用类名.成员。修改该成员的值,报错。--常量不能被修改
1:基本数据类型,final使值不变
2:对象引用,final使其引用恒定不变,无法让其指向一个新的对象,但是对象自身却可以被修改。
3:该关键字一般和static关键字结合使用
1:常量可以优先加载,不必等到创建对象的时候再初始化。
4:final和static可以互换位置
5:常量一般被修饰为final
fianl修饰类:
1:该类是最终类,不能被继承。
1:将父类加final修饰,子类继承,就会报错。
2:查看api文档发现String类是final的。Integer类也是final的
1:为了防止代码功能被重写
2:该类没有必要进行扩展
final修饰方法:
1:该方法是最终方法,不能被重写
2:当一个类被继承,那么所有的非私有函数都将被继承,如果函数不想被子类继承并重写可以将该函数final修饰
3:当一个类中的函数都被修饰为final时,可以将类定义为final的。