继承:

  好处:1、提高代码复用性;

      2、让类之间产生关系,给多态提供了前提;

   父类、子类

  Java中支持单继承,不直接支持多继承,但对C++的多继承进行了改良

  单继承:一个子类只能有一个直接复类

  多继承:一个子类可以有多个直接父类(Java中不允许,进行了改良)会产生不确定性,不直接支持,因为父类中有相同成员会产生调用的不确定性;

  Java支持多重继承:C继承B,B继承A

           就会出现继承体系:1、查看体系顶层类,了解体系基本功能;

                    2、创建体系最子类对象,完成功能使用。

  什么时候定义继承呢?

    当类与类之间存在所属关系时候,就定义继承;

  在子父类中,成员的特点体现:1、成员变量;2、成员函数;3、构造函数;

  1、成员变量:当本类的成员和局部变量同名用this区分;

        当子父类中的成员变量同名用super区分父类;

        this和super用法很相似:this代表一个本类对象的引用,super代表一个父类空间

  子父类中成员函数特点:

    1、覆盖:当子父类中出现成员函数一模一样,会运行子类情况,这种现象称为覆盖;  

    函数两个特点:1、重载;在同一类中

           2、覆盖;子类中,覆盖也称为重写;

    覆盖注意事项:1、子类方法覆盖父类方法时,子类权限必须大于等于父类权限;

           2、静态只能覆盖静态,或被静态覆盖;

  什么时候覆盖操作?

    当对一个类进行子类扩展时,子类需保留父类功能,但要定义子类特有

    2、子父类中的构造函数——子类的实例化过程

    在子类构造对象时,发现访问子类构造函数时,父类也运行了;

    原因:在子类中构造函数中第一行有一个默认隐式语句,super()

    子类的实例化过程:子类中所有构造函数都默认访问父类构造函数

    为什么子类继承父类要访问他们的构造函数?
       那是因为子类继承父类,获取了父类内容,所以使用父类内容前,先看父类如何对自己内容初始化

    注意:super语句必须定义在子类构造函数第一行

    一个对象实例化过程:

        person.p=new person()

        1、JVM会读取指定路径下person.class文件,并加载进内存,并会先加载person父类;

        2、在堆内存中开辟空间,分配地址;

        3、并在对象空间中,对对象属性默认初始化;

           4、调用对应构造函数初始化;

        5、构造函数中,第一行先调用父类构造函数;

        6、父类初始化完后,对子类属性初始化;

        7、在进行子类构造函数特定初始化;

        8、初始化完毕后,将地址值赋给引用变量;

final关键字:继承的弊端:打破了封装性;

       1、final是一个修饰符,可以修饰类、方法、变量;

       2、final修饰的类不可以被继承;

       3、final修饰的方法不可以被覆盖;

       4、final修饰变量是一个常量,只能赋值一次;

    为什么要用final修饰变量,其实在程序中如果数据固定,则直接用就可以?为了区别;

抽象类:     

  抽象:abstract  /抽象关键字/

    没有足够的信息描述一个类就是抽象类;

  特点:1、抽象类:方法只有声明没有实现时,该方法就是抽象方法,抽象方法必须在抽象类中;

     2、抽象类不能被实例化,因为调用抽象方法没有意义;

     3、抽象类必须由子类覆盖抽象类方法,否则,子类还是抽象类;

  1、抽象类由构造函数吗?

    由,用于给子类对象初始化;

  2、抽象类可以不定义抽象方法?

    可以,但是少见,通常类中有很多方法,但是却没有内容;

  3、抽象类不能和哪些关键字?

    private、final、static

  4、抽象类和一般类异同点:

   相同点:抽象类和一般类都是用来描述事物的,都在内部定义了成员;

     不同点:1、一般类有足够信息描述事物;2、一般类不能定义抽象方法;3、一般类可以被实例化;

  5、抽象类是一个父类吗?

    对.

接口:interface()  当抽象类中方法都是抽象时,这时可以将该抽象类用接口、

   定义接口使用的关键字不是class,是interface

   对于接口常见的成员:1、全局变量;2、抽象方法

      1、public static final  2、public  abstract

      由此得出结论,接口成员都是公共的权限

   实现:类与类之间是继承关系;类与接口之间是实现关系;

      接口不可以实例化,只能由实现了接口的子类并覆盖了接口中所有抽象方法后,才可以实例化;

      在Java中不直接支持多继承,因为会调用不确定性,所以改良多实现

      一个类中可以实现多接口

   class  Test   implements  A,Z   //多实现

   细节:一个类在继承另一个类的同时,还可以实现多个接口

      接口出现避免了单继承的局限性

      接口与接口之间是继承关系,而且接口可以多继承;

   接口的特点:是对外暴露的规则,是程序的功能拓展,可以用来多实现;

         类与接口之间是实现规则,类继承的同时可以实现多个接口,降低耦合性

   接口与抽象类区别:

      相同点:都是不断向上抽取而来;

      不同点:1、抽象类需要被继承,接口需要被实现;

          2、抽象类中可以定义抽象方法和非抽象方法,接口中只可以定义抽象方法;

多态:定义 :某一类事物的多种存在形态;

   对象的多态性:一个对象对应着不同类型;

        多态在代码中体现,父类或接口的引用指向其子类的对象;

   多态的好处:提高了代码扩展性,前期定义的代码,可以使用后期的内容;

   多态弊端:前期定义的内容不能调用后期子类特有内容;

   多态前提:1、必须由关心:继承,实现;2、必须要有覆盖;

   多态转型:1、自动类型提升,但是特有功能无法访问;作用就是限制对特有功能访问;

        2、向下转型的目的是为了使用子类中的特有语法;

    类型转换异常

    注意:对于转型,自始至终都是子类对象在做着类型变化;

   多态成员变量:成员特点:1、成员变量;2、成员函数;3、静态函数;

    1、编译时,参考引用型变量所属类中是否有调用的成员变量;有,编译通过,没有,编译失败;

       运行时,参考引用型变量所属类中是否有调用的成员变量;并运行该所属类中的成员变量;

    2、成员函数:参考引用型变量所属类中是否有调用的成员函数,有,编译通过;

        运行时,参考的是对象所属类中是否有调用的成员函数;

    3、静态函数:谁调用显示谁;

      其实对静态方法,直接用类名调用即可;

内部类:类定义在类中;  

    访问特点:内部类可以直接访问外部类中成员,包括私有成员;

         外部类访问内部类中成员,必须建立内部类对象;

    一般用于类的设计

    分析事物时,发现事物描述中还有事物;

    内部类——修饰符:

      如果内部类是静态的,相当于一个外部类;

      如果内部类是静态的,成员是静态的;

      如果内部类中定义了静态成员,这个类也是静态类;

    为什么内部类能直接访问外部类成员?

      因为内部类持有外部类引用;

    内部类可以放在局部位置上,只能访问局部被final修饰的局部变量;

 匿名内部类:就是内部类简写格式:必须有前提,内部类必须继承或实现一个外部类或接口;

    其实就是一个匿名子类对象;

    格式:new 父类 or    接口(){子类内容}

              

Java笔记(day9~day10)的更多相关文章

  1. Effective Java笔记一 创建和销毁对象

    Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...

  2. java笔记00-目录

    --2013年7月26日17:49:59 学习java已久,趁最近有空,写一个总结: java笔记01-反射:

  3. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  4. 转 Java笔记:Java内存模型

    Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...

  5. servlet(6) - servlet总结 - 小易Java笔记

    垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...

  6. Java笔记 —— 继承

    Java笔记 -- 继承 h2{ color: #4ABCDE; } a{ text-decoration: none!important; } a:hover{ color: red !import ...

  7. Java笔记 —— 方法重载和方法重写

    Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...

  8. Java笔记 —— 初始化

    Java笔记 -- 初始化 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red !impo ...

  9. Java笔记 —— this 关键字

    Java笔记 -- this 关键字 h2{ color: #4ABCDE; } a{ color: blue; text-decoration: none; } a:hover{ color: re ...

随机推荐

  1. Redis+Restful 构造序列号和压力测试【后续】

    大家还记上篇博文https://www.cnblogs.com/itshare/p/8643508.html,测试redis构造流水号的tps是600多/1s. 这个速度显然不能体现redis 集群在 ...

  2. Linux、docker、kubernetes、MySql、Shell、kafka、RabbitMQ运维快餐

    检查端口占用 lsof -i:[port] netstat -anp |grep [port] 监控网络客户TCP连接数 netstat -anp | grep tcp |wc -l 获取某进程中运行 ...

  3. Logistic回归二分类Winner or Losser----台大李宏毅机器学习作业二(HW2)

    一.作业说明 给定训练集spam_train.csv,要求根据每个ID各种属性值来判断该ID对应角色是Winner还是Losser(0.1分类). 训练集介绍: (1)CSV文件,大小为4000行X5 ...

  4. 女皇武则天:我不愿被 extends

    01. 利用继承,我们可以基于已存在的类构造一个新类.继承的好处在于,子类可以复用父类的非 private 的方法和非 private 成员变量. is-a 是继承的一个明显特征,就是说子类的对象引用 ...

  5. Python爬虫入门教程 61-100 写个爬虫碰到反爬了,动手破坏它!

    python3爬虫遇到了反爬 当你兴冲冲的打开一个网页,发现里面的资源好棒,能批量下载就好了,然后感谢写个爬虫down一下,结果,一顿操作之后,发现网站竟然有反爬措施,尴尬了. 接下来的几篇文章,我们 ...

  6. 8天入门docker系列 —— 第一天 docker出现前的困惑和简单介绍

    docker出来也有很多年了,但用到的公司其实并不是很多,docker对传统开发是一个革命性的,几乎颠覆了之前我们传统的开发方法和部署模式,而大多 公司保守起见或不到万不得已基本上不会去变更现有模式. ...

  7. JDBC mysql 相关内容笔记

    解决乱码: url字符串加上?useUnicode=true&characterEncoding=utf-8; mysql数据库无法插入中文数据问题:将mysql数据库的编码改为utf-8; ...

  8. python3 函数传参练习 全局变量与局部变量 的理解

    额 还是继续抄一边NLP第二条: 2.一个人不能控制另外一个人   一个人不能改变另外一个人,一个人只能改变自己. 每个人的信念,价值观,规条系统只对本人有效,不应强求别人接守. 改变自己,别人才会有 ...

  9. PowerDesigner如何连接数据库--odbc连接数据库用法

    先下载msi   https://dev.mysql.com/downloads/connector/odbc/ 注:如果不成功,有可能msi版本问题,可以更换一下msi 前期准备 双击odbc的ms ...

  10. pyquery 学习

    pyquery 是python仿照jQuery的严格实现,语法与jQuery几乎完全相同,所以对于学过前端的朋友们可以立马上手,没学过的小朋友也别灰心,我们马上就能了解到pyquery的强大. 1 安 ...