特性

  • java是单继承的,一个类直接继承的父类只能有唯一的一个
  • java中父类可以有多个子类
  • Object是所有类的父类,一个类没有父类则默认继承Object;

继承中的重写

  • 子类重写方法访问权限不能比父类低
  • 私有(private)方法不能被重写
  • 可以使用@Override 检测方法的重写是否正确
  • 子类返回值必须小于等于父类的返回值

继承中构造方法

  • 子类中所有的构造方法都会默认访问父类中的无参构造方法
  • 子类会继承父类中的数据,可能会使用父类的数据.所以子类初始化之前,一定会先完成父类数据的初始化.
  • 每一个子类构造方法的第一条默认语句都是super();
  • 父类中没有无参,只有有参
  1. 可以通过super关键字显示调用父类的带参构造方法
  2. 在父类中自己提供一个无参构造方法


多态中的成员访问

  • 成员变量  :  编译看左边,执行看左边
  • 成员方法  :  编译看左边,执行看右边

 父类引用指向子类对象(向上转型)

Animal  a=new  Cat();

父类引用可以访问子类重写方法;

 父类引用转为子类对象(向下转型)

Cat  c=(Cat)a;

a.eatyu();

可以访问子类特有方法



抽象(abstract)

  • 抽象类和抽象方法都必须使用 abstrsct 关键字修饰
  • 抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类
  • 抽象类不能实例化

抽象类可以参照多态的形式,通过子类对象实例化,这叫抽象类多态

  • 抽象类的子类要么是抽象方法,要么重写抽象方法;


接口(interface)

接口的特点

  • 接口用关键字 interface 修饰

public  interface  接口名{...}

  • 类实现接口用  implements  表示

public  class  类名  implemends  接口名{...}

  • 接口不能直接实例化

接口参照多态的形式,通过实现类对象实例化,这叫做接口多态

 接口的成员特点

  • 成员变量

成员变量只能是常量

接口中的成员变量默认使用  public  static  final  修饰

 
  • 构造方法

接口没有构造方法,因为接口主要是对行为进行抽象的,没有具体存在

  • 成员方法
  • java8之前接口只能是抽象方法

默认为  :  public  abstract

  • java8开始接口允许使用默认方法,可以解决接口升级的问题

格式:

public  defoult  返回值类型  方法名称(参数列表){ 方法体... }

  • java 8 还允许了静态方法

格式 :public  static  void  方法名(){  方法体...}

静态方法通过接口名称调用

  • java 9 以后接口允许定义私有方法
  1. 普通私有方法:解决多个默认方法之间的代码重复问题

格式:private  void  方法名称(参数列表){  方法体... }

2.  静态私有方法:解决多个静态方法之间的代码重复问题

格式:private  static  void  方法名称(参数列表){ 方法体... }

继承(extends), 多态 , 抽象(abstract)接口() 易混难点解析的更多相关文章

  1. Java面向对象理解_代码块_继承_多态_抽象_接口

    面线对象: /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 C:生 ...

  2. java面向对象(封装,继承,多态,抽象,接口的定义和实现)

    1.封装 在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定 ...

  3. 关于继承、封装、多态、抽象和接口(Java)

    1.继承:    通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类.已有的称为父类,新的类称为子类(父类派生子类,子类继承父类). (1)继承的优点:①代码的可重用性: ②父类的属性的方 ...

  4. Java面向对象的基本概念(对象、封装、继承、多态、抽象、接口、泛型)

    对象:是一个自包含的实体,用一组可识别的特征和行为来标识. 类:具有相同的属性和功能的对象的抽象合集.(类关键字class,首字母大写). 实例:就是一个真实的对象. 实例化:创建对象的过程,关键字是 ...

  5. Java学习笔记 07 接口、继承与多态

    一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...

  6. java类的继承,多态,抽象类与接口

    知识点梳理:     1,怎样定义自己的类. MyStarFrame,MyStarPanel 类中定义: (1)属性(数据),变量. (2)方法(函数),行为. (3)构造方法(特征,作用,何时被调用 ...

  7. Java基础---继承、抽象、接口

    一.概述         继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多个类可以称为子类,单 ...

  8. Java 继承、抽象、接口

    一.继承 1. 概述 继承是面向对象的重要特征之一,当多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,那多个类中无需再定义这些属性和行为,只需继承那个单独的类即可. 单独的类称为父类或超 ...

  9. java四大特性理解(封装继承多态抽象)

    封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象.封装是一 ...

随机推荐

  1. Java执行groovy脚本的两种方式

    记录Java执行groovy脚本的两种方式,简单粗暴: 一种是通过脚本引擎ScriptEngine提供的eval(String)方法执行脚本内容:一种是执行groovy脚本: 二者都通过Invocab ...

  2. QT程序发布

    1.新建一个脚本文件,后缀为.bat 2.查看自己qt的windeployqt.exe路径,一般在QT安装的bin目录,而且脚本程序中需要去掉其后缀, 前面部分是windeployqt.exe的路径以 ...

  3. try - with - resource

    本文详细介绍了自 JDK 7 引入的 try-with-resources 语句的原理和用法,以及介绍了 JDK 9 对 try-with-resources 的改进,使得用户可以更加方便.简洁的使用 ...

  4. RTSP 流相关工具介绍

    RTSP (Real Time Streaming Protocol),实时流协议,是一种应用层协议,专为流媒体使用.本文将介绍 GStreamer, VLC, FFmpeg 这几个工具,如何发送.接 ...

  5. 2021S软件工程——个人阅读作业2

    2021S软件工程--个人阅读作业2 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 了解并熟悉软件开发的具体流程, ...

  6. C/C++ 实现多线程与线程同步

    多线程中的线程同步可以使用,CreateThread,CreateMutex 互斥锁实现线程同步,通过临界区实现线程同步,Semaphore 基于信号实现线程同步,CreateEvent 事件对象的同 ...

  7. Backdoor.Zegost木马病毒分析(一)

    http://blog.csdn.net/qq1084283172/article/details/50413426 一.样本信息 样本名称:rt55.exe 样本大小: 159288 字节 文件类型 ...

  8. Python脚本破解压缩文件口令(zipfile)

    环境:Windows python版本2.7.15 Python中操作zip压缩文件的模块是 zipfile . 相关文章:Python中zipfile压缩文件模块的使用 我们破解压缩文件的口令也是用 ...

  9. Windows 2003 Server远程代码执行漏洞集合

    目录 MS08-067 CVE-2017-7269 MS08-067 发布日期:2008/10/22 针对端口:139.445 漏洞等级:高危 漏洞影响:服务器服务中的漏洞可能允许远程执行代码 受影响 ...

  10. UVA11078开放式学分制(前面-后面的最大值)

    题意:       给你一个长度为n的整数序列a0 a1 a2..找出两个整数ai,aj(i<j),使得ai-aj最大. 思路:       简单题目,想象一下,对于每一个数我们只要用他前面的最 ...