A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wuwangshan 中级黑马   /  2018-2-11 23:59  /  1908 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【继承】
        继承:多个类有共同的成员变量和成员方法,抽取到另外一个类中(父类),在让多个类去继承这个父类,我们的多个类就可以获取到父类中的成员了。
        关键字: extends

        继承特点:java语言只支持单一继承,只能继承一个父类(一个儿子只能有一个亲爹)
                java语言支持多层继承(一个儿子可以有一个亲爹,还可以有一个亲爷爷)

        继承中成员变量的特点:
                字类只能获取父类非私有成员
                子父类中成员变量的名字不一样直接获取父类的成员
                子父类成员变量名字是一样的获取的是字类的成员变量

        就近原则: 谁离我近我就用谁
                如果有局部变量直接使用局部变量
                如果没有局部变量,有字类的成员变量就是用字类的尘缘变量
                如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量
                啥都没有,就出错了

        super:可以获取父类的成员变量和成员方法,用法和this是相似的

        案例:



        继承中成员方法的特点:
                子类只能获取父类非私有成员
                子类中没有这个方法,调用父类
                子类重写了这个方法,调用子类的

        方法的重写:在子父类,字类的方法和父类的完全一样,子类重写了父类的方法(覆盖,当字类重写了父类的方法之后,使用子类对象调用的就是子类的方法)
        方法重载:在一个类中,有多个重名的方法,但是其参数不一样,(参数个个数,参数的类型,参数的顺序)和返回值无关

        案例:
        已知父类Dad4
   行为:吃方法 分别打印”小酌两口” 和 “去睡觉”
已知子类Kid4
   行为:吃方法 打印”好好吃饭”
已知测试类:
   创建子类对象,调用吃方法


        方法重写的应用场景:当父类的方法不能完全满足子类使用,这个时候子类重写父类的方法.
                        并可以在方法中使用关键字super调用父类的方法,这样做既可以保有父类的功能,也可以拥有子类特有的功能

        方法重写的注意事项:
                        1. 不能重写父类私有的方法,
                        2. 权限必须大于等于父类方法的权限


注解: @开头
        常见的:@Override//重写父类方法

       
        继承中的构造方法执行顺序:
                        在有子父类继承关系的类中,创建子类的对象,调用子类的构造方法,
                        如果子类构造方法的第一行代码没有调用父类的构造方法,默认的调用父类的无参构造
                        肯定会先执行父类构造,因为要先给父类的成员变量进行初始化,子类可能会使用到

        我们可以使用super()在构造方法的第一行中调用父类构造方法

注意:静态方法里面不能出现this. super.


this和super的区别
        this:当前对象的引用
                调用子类的成员变量
                调用子类的成员方法
                在子类构造方法第一行调用子类其他构造方法
        super:子类对象的父类引用
                调用父类的成员变量
                调用父类的成员方法
                在子类的构造方法第一行调用父类的构造方法


继承的优缺点
        优点:提高了代码的复用性
                提高了代码的可维护性
        缺点:
                类的耦合性增强了
                开发原则:高内聚低耦合
                内聚:就是自己完成某件事的能力
                耦合:类与类的关系



【匿名对象】

        匿名对象:没有名字的对象;(没有变量引用的对象)
        匿名对象应用场景:
                当方法只调用一次的时候 可以用匿名对象
                可以当作参数进行传递,但是无法再传参之前做其他事

注意:匿名对象可以调用成员对象并赋值,但是赋值斌没有意义


【final】的概述和作用
        final:修饰符,可以用于修饰类,成员方法和成员变量

        final修饰的类:不能被继承,不能有子类
        final修饰的方法: 不能被重写
        final修饰的变量;不可以修改,是常量,被final所修饰的成员变量,一旦初始化则不可改变

注意:自定义常量必须初始化,可以选择显示初始化,或者构造初始化



【抽象类】abstract
        abstract:关键字,用于修饰方法和类

        抽象方法:不同类的方法时想死,但是具体内容又不太一样,所以我们只能抽取他的声明,没有具体的方法体, 没有具体方法就是抽象方法.

抽象类:有抽象方法的类必须是抽象类

注意:一个类继承了抽象类,需要重写他所有的抽象方法,否则这个类就得是抽象类



抽象类的特点:
        抽象方法只能在抽象类里面
        抽象类和抽象方法必须被abstract修饰
        抽象类不能创建对象(不能实例化)
        抽象中科院有非抽象的方法
        抽象类和类的关系也是继承
        一个类继承了抽象类要么重写所有的抽象方法,要么他自己是抽象类

抽象类的成员特点:
        成员变量:可以有成员变量,可以有常量
        成员方法:可以有抽象方法,可以有非抽象方法
        构造方法:可以有构造方法,需要对抽象类的成员进行初始化




abstract不能和哪些关键字共存 static private final
        抽象类中是否有构造函数?        有
        抽象类中可不可以没有抽象方法?







3 个回复

倒序浏览
回复 使用道具 举报
过年放假还不忘总结知识,6翻了
回复 使用道具 举报
放假还不忘总结知识,好样的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马