就业班学习(继承) 作者:一衡 今天主要学习Java语言的特点中的第二个特性:继承(Java语言特点封装、继承、多态)。其他关键字(extends、abstract 、 super、final) 一、继承 1、继承的概述及继承思想 继承描述的是事物之间的所属关系,通过继承可以使多个事物之间形成一个关系体系。继承思想是为(is a 的思想)。 格式为: class 子类 extends 父类 {} 2、继承特点 A、只支持单继承不支持多继承,但支持多层继承,一个父类可以被多个子类继承。 B、只能继承父类中非私有的成员(成员变量,成员方法)。 C、方法重写(也叫覆盖)子类中的方法和父类中的方法完全一样(方法名,参数列表)。方法重写的应用场景主要在于,当父类中的方法不能满足子类需求时,就需要方法重写。 注意事项:A、不能重写父类的私有方法(特点B可以解释)。 B、子类的权限必须大于等于父类的权限(子类是父类的加强版)。 C、父类的构造方法不能被继承。(结合继承特点B记忆) 3、注解 @开头(例如@Override(后面跟方法重写),@overload方法重载)) 4、继承中成员变量特点(关键字,this & super) A:子类只能获取父类非私有成员 子父类中成员变量的名字不一样直接获取父类的成员变量 子父类中成员变量名字是一样的获取的是子类的成员变量 B:就近原则:谁离我近我 就用谁 如果有局部变量就使用局部变量 如果没有局部变量,有子类的成员变量就使用子类的成员变量 如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量 C: super:可以获取父类的成员变量和成员方法,用法和this是相似的 5、this 和super的区别。 this:当前对象的引用 调用子类的成员变量 调用子类的成员方法 在子类的构造方法第一行调用子类其他构造方法 super:子类对象的父类引用 调用父类的成员变量 调用父类的成员方法 在子类的构造方法第一行调用父类的构造方法 结论(继承中构造方法的执行结构):在类中创建子类对象调用子类构造方法。如果子构造方法第一行的执行语句如果没有任何调用,则会先调用父类无参构造。 父类无参构造----子类有参构造----子类无参构造。第一行执行语句this和super只能出现一个。 6、final关键(最终) final可修饰类、成员变量、成员方法 A、final修饰的类不能被继承。 B、B、final修饰的方法不能被重新。 C、final修饰的成员变量不能被修改。 D、final修饰引用数据类型,地址值不可被修改。但是堆内存中的值可以改变. 注:final修饰的成员变量是一个自定义常量,自定义常量必须初始化,可以选择显示初始化或者构造初始化。 7、继承的优点和缺点 优点:提高代码的复用性,可维护性。 缺点:增强了类与类之间的耦合性。 引入性的编程思想:高内聚低耦合。 二、匿名对象 1、匿名对象定义:名义名字的对象 格式: new 对象(); 2、应用场景 当方法只调用一次时。 注意事项:匿名对象可以调用成员变量并赋值,但是无实际意义,可做参数的传递。 三、抽象类(关键字abstract) 1、作用场景:只能修饰类和成员方法。强制子类做什么事情。 注意事项: A、类中含有抽象方法,类也必须是抽象类。但是抽象类不一定含有抽象方法。 B、抽象类不能创建对象(不能实例化,要想使用,可以使用多态或者) C、一个类继承了抽象类,那么子类必须重写抽象类中所有的抽象方法。 D、abstract不能喝final、private、static关键一起出现。 |