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. 基于MAC OS 操作系统安装、配置mysql

    $ sudo mv mysql-5.1.45-osx10.6-x86_64 /usr/local/mysql$ cd /usr/local$ sudo chown -R mysql:mysql mys ...

  2. [html5] 学习笔记-html5音频视频

    HTML5 最大的新特色之一就是支持音频和视频.在 HTML5 之前,我们必须使用插件如 Silverlight  或 Flash 来实现这些功能.在 HTML5 中,可以直接使用新标签< au ...

  3. js之Math对象

    ; var num1 = Math.floor(num); // 向下取整 var num2 = Math.ceil(num); // 向上取整 document.write(num2+'-<b ...

  4. 源码(09) -- java.util.Arrays

    java.util.Arrays 源码分析 ------------------------------------------------------------------------------ ...

  5. 一个想法(续三):一份IT技术联盟创业计划书,开启众筹创业征程

    写在创业计划书之前的话: 昨天在闪存里我@了dudu,说:我要借钱,不久dudu回了我:傍个富婆. 当然,dudu以为我是玩笑,其实,我的确是开玩笑的,哈. 不过我正在执行一个创业计划,如果启动,我会 ...

  6. FindPkgConfig----CMake的pkg-config模块

    FindPkgConfig A pkg-config module for CMake. CMake的pkg-config模块. Finds the pkg-config executable and ...

  7. 利用canvas制作乱跑的小球

    canvas制作乱跑的小球 说明:将下面的代码放到html的body就可以,键盘控制上(W)下(S)左(A)右(D) <body> <canvas id="canvas&q ...

  8. 为什么亚马逊云计算中的DNS服务叫Route53?

    最近在用亚马逊的云计算服务,看到它的DNS服务的名字叫做"Route 53".这个名字让我很好奇,为什么叫"Route 53"呢?有什么特殊含义? 看到了这个Q ...

  9. udp 双机通信(服务器循环检测)2

    此文摘自:http://blog.csdn.net/qinpeng100423/article/details/8980423,谢谢了 自己上一篇写的udp通信,只能运行一次,参考了这位博主的,只是把 ...

  10. 使用node-inspector调试nodejs程序<nodejs>

    1.npm install -g node-inspector  // -g 导入安装路径到环境变量 一般是c盘下AppData目录下 2.node-inspector & //启动node- ...