java中常见的类关系(javacore上面也有介绍道的)

  1、is a关系()

  2.has a 整体与局部的关系

  3、继承关系 是现实世界中存在而上面两种关系又无法描述的

  当然谈的最多的是继承关系,这就出现了,父类和子类。父子类之间有下面一些故事。

父子类中的一般注意事项

  子类显示调用父类的构造函数 使用关键字super(), 必须放到子类构造函数的第一行,否则会报错.

  super和this的区别

    super主要是在子类中使用,调用父类的构造方法super(),调用父类的属性方法super.x(), super.fun();

    this则主要在本类中使用只想当前对象。

  重写(override)

    子类根据实际的需要把从父类哪里继承来的方法自己重写,方法的定义完全相同就是,方法体不一样而已。如果同一个类中两个方法的定义完全相同的话,就会报错。

  重载和重写的不同

    重载(overload)

      1、前提:必须在同一个类中

      2、特点:

        函数名相同,参数列表不同,与其他无关(访问控制符,返回值类型)

      3、不同点:参数个数不同,顺序不同,类型不同

    重写(override)

      1、前提:继承

      2、特点

        函数名必须相同、参数列相容返回值

        子类的返回值类型必须等于或者小于父类的返回值(这种大小,体现在一种父子关系中,就是说子类返回值应当和父类相同,或者是父类返回值类型的子类级别)


有关抽象类

  有抽象函数的类(用abstract修饰的函数),该类一定是抽象类。

  抽象类中不一定又抽象函数。是不是抽象类看class有没有abstract修饰

  抽象类不能使用new关键字创建对象

java中的接口

  java的接口其实是一种多继承

  接口可以继承接口,其实是一种高度的纯抽象类


说说多态

  可以说,因为有了继承才有了多态,这个可以好好体会。

  1、当父类和子类具有相同的非静态成员变量,那么在多态下访问的是父类的成员变量

  2.当父类和子类具有相同的静态成员变量,多态下访问的是父类的是父类的静态成员变量

  3、当父类和子类具有相同的非静态方法(即子类父类的方法),多态下访问的是子类的成员方法

  4、当父类和子类拥有相同的静态方法(即子类重写父类的静态方法),多台下访问的是父类的静态方法.

  只要是和静态相关,都是父类优先,非静态,则是子类优先。

  Java中的访问权限,声明一句话,有关访问权限的问题,说private权限是私有的,意思就是在该类中能够看到,即便是继承的子类中也是看不到的,只有通过相关的getset方法。

(2)java中的集中关系,is a, has a, 继承,重点聊聊继承的更多相关文章

  1. Java基础进阶:继承重点摘要,继承详解,方法重写注意事项,方法重载与重写的区别,抽象类,代码块, 附重难点,代码实现源码,课堂笔记,课后扩展及答案

    继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我 ...

  2. 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类

    转自: http://blog.csdn.net/sunguangran/article/details/6069317 非常感谢原作者,整理的这么详细. 在java中可有两种方式实现多线程,一种是继 ...

  3. java中的多态关系的运用

    1.多态发生的三个必备条件 继承.重写.父类引用指向子类对象 2.注意 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误:如果有,再去调用子类的同名方法. 方法的重写,也就是 ...

  4. 简谈java 中的 继承和多态

    继承(extends) : 1:object 是所有类的父(基)类. 2:子类继承父类所有的内容除了(private修饰的和构造方法). 3:子类在手动创建构造方法时,必须调用父类构造方法. 4:在J ...

  5. Java中实现多态的条件是什么

    java中实现多态需要三个条件: 1,需要有继承关系的存在. 2,需要有方法的重写. 3,需要有父类的引用指向子类对象.

  6. Java中特殊的类——Object类

    Java中特殊的类--Object类 1.Object类的概述 Object类是java默认提供的类.Java中除了Object类,所有的类都是有继承关系的.默认会继承Object类,即所有的对象都可 ...

  7. 深入理解Java中的继承

    对于面向对象的程序设计而言,每一个程序员都应该去了解Java中的封装,继承和多态,那么我今天来说的主要是以继承为核心的主题. 一.关于对继承的理解. 继承是面向对象的三大特性之一,是java中实现代码 ...

  8. java中error和exception的区别

    转自:https://www.jianshu.com/p/e8bbee3c1c4a Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的 ...

  9. Java中内存中的Heap、Stack与程序运行的关系

    堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题:而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题:堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就象是自己动 ...

随机推荐

  1. 源码(06) -- java.util.AbstractList<E>

    java.util.AbstractList<E> 源码分析(JDK1.7) ------------------------------------------------------- ...

  2. W3Cschool学习笔记——XHTML基础教程

    XHTML 是更严格更纯净的 HTML 代码. XHTML 是什么? XHTML 指可扩展超文本标签语言(EXtensible HyperText Markup Language). XHTML 的目 ...

  3. oracle decode函数的用法

    含义解释: decode(字段,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 用法如下:IF 字段=值1 返回 返回值1ELSIF 字段=值2 返回 返回值2 ......ELSIF ...

  4. iOS实现白板、画板功能,有趣的涂鸦工具,已封装,简单快捷使用

    一.效果图: 二.选择颜色: 分[固定颜色模式]和[自由取模式].  三.操作栏功能: 1.撤销:撤销上一步操作,可一直往上进行,直到全部清空. 2.清空:直接清除所有绘画. 3.橡皮擦:去除不要的绘 ...

  5. Orcale 之基本术语二

    表空间 表空间是 Orcale 数据库最大的逻辑结构.表空间就是一个或者多个数据文件的集合.所有的数据文件都被逻辑的存放在表空间中. 一个数据库包括 SYSTEM.SYSAUX和TMP三个默认表空间, ...

  6. C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(下)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(下)),不对的地方欢迎指出与交流. 章节出自<Professional C ...

  7. 网站SEO,HTTP请求的关键数字----6

    客户端浏览器向服务器请求一个网页素材. 那么网页素材是通过什么方式,什么顺序被下载下来的呢. 我今天做了个简单的测试. 首先,准备测试文件 写一个网页,网页中引用若干的资源文件. 同一文件的不同的参数 ...

  8. table中td的宽度不随文字变宽

    1.设置了table的宽度后,宽度仍然不固定,td的内容一多,很容易吧table撑变形.有些时候我们需要设置固定的宽度. 解决办法 table的css 加入样式  table-layout:fixed ...

  9. 学习ui-router

    ui-router的学习 在单页面应用中要把各个分散的视图给组织起来是通过路由机制来实现的.Angular原始的路由机制靠ngRoute提供,通过hash和history来实现的,可以检测浏览器是否支 ...

  10. 无分类编址 CIDR (构成超网)

    划分子网在一定程度上缓解了因特网在发展中遇 到的困难.然而在 1992 年因特网仍然面临三个必 须尽早解决的问题,这就是: B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全 ...