内部类:成员内部类、静态内部类、方法内部类、匿名内部类。

内部类:定义在另外一个类里面的类,与之对应,包含内部类的外部类被称为外部类。

内部类的作用:(1)内部类提供了更好的封装,可以把内部类隐藏在外部类之内,部允许同一个包中其他类昂问该类。(2)内部类的方法可以直接访问外部类的所有数据,包括私有数据。(3)内部类所实现的功能使用外部类照样可以实现,只是有时使用内部类更方便。

成员内部类(普通内部类):内部类创建对象时,必须使用外部类对象来创建,而不能直接用new创建一个内部对象,即内部类 对象名=外部类对象. new 内部类();外部类不能直接调用内部类方法,必须通过内部类对象来访问其属性和方法。如果外部类和内部类具有相同的属性或方法,内部类默认访问自己的属性和方法。如果需要访问外部类的成员变量,可以用this关键字,即外部类.this.属性名/方法.

静态内部类:是static修饰的内部类。特点是:(1)静态内部类不能访问外部类的非静态成员,但是可以通过new外部类().成员来访问。(2)如果外部类静态成员与内部类成员名相同,可通过类名.静态成员来访问外部类静态成员;如果外部类的静态成员与内部类成员名称不同,则可以通过成员名直接访问外部类的静态成员。

(3)创建静态对象时,不需要外部对象可以直接创建,即内部类 对象名=new 内部类();

方法内部类:内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在方法内可以使用。由于方法内部类不能在外部类以外的地方使用,因此方法内部类不能使用访问控制符和static修饰。

继承

子类拥有父类的所有属性和方法,除了父类私有成员。

继承初始化顺序:(1)初始化父类再初始化子类。(2)先执行初始化对象中的属性,再执行构造方法中的初始化。

final关键字:final可以修饰类、方法、属性、变量。final修饰类的画,此类不能被继承;final修饰方法的话,此方法不能被重写;final修饰属性的话,则该属性不会隐式初始化,类的初始化必须有值,要么在声明时赋值,要么在构造方法中赋值;final修饰变量的话,变量变为常量,而且仅能赋值一次。

super关键字:在对象内部表示父类对象。

super应用:(1)如果子类的构造方法没有显式调用父类的构造方法,则系统默认调用父类无参构造方法。(2)如果显式调用父类的构造方法,必须放在第一行。(3)如果子类构造方法既没有显式调用父类构造方法,而且父类方法没有无参构造方法,则编译出错。

多态

父类引用指向本类对象(执行本类方法);父类引用指向子类对象(要么执行子类方法,要么执行继承的父类方法)。

abstract修饰符

作用:限制子类必须实现的方法,不关注如何实现。

使用规则:(1)abstract定义抽象类;(2)abstract修饰抽象方法,只有声明,不用实现(抽象方法没有执行体大括号,并且以分号结束);(3)包含抽象方法的类是抽象类;(4)抽象类中可以包含抽象方法,也可以没有抽象方法;(5)抽象类不能直接创建,可以定义引用变量。

接口

接口由全局变量和公共的抽象方法所组成,规定某些类的实现方法,用关键字interface定义接口,即[修饰符] interface 接口名 [extends 父接口1,父接口2...]{0——n个常量定义;

0——n个抽象方法定义;}

接口通常是用来被继承、被实现的,修饰符一般用public,不能用private和protected修饰接口。接口必须有abstract修饰,接口可以定义多个父接口,因为接口中的都是常量,所以系统默认用public static final修饰常量,即使常量前没有修饰符修饰,系统也会自动加上。因为接口中全是抽象方法,所以系统默认用public abstact [修饰符] 修饰方法,即使方法前没有修饰符,系统也会自动加上。

一个类可以实现一个或多个接口,用implements实现,如果要继承父类,继承父类必须在实现接口之前。接口的使用是通过接口的引用指向实现接口的对象。接口经常配合匿名内部类使用,如:interface i=new interface(){  public void method(){}  };(必须有分号)

包名命名规范应该全是小写字母。

import中的*只能代表类,不能代表包。如果使用其他类,必须使用import导入。

Java.lang.Object是所有类的父类。

object是所有类的父类。以下是它的两个重要方法。

(1)toString()

(2)equals(),比较的是对象是否指向同一块内存地址。

类对象:描述的是类的代码信息,即类的属性。

类的对象:描述的是类的数据域,即类的属性值。

Java三大特征:封装 继承 多态的更多相关文章

  1. Java三大特性(封装,继承,多态)

    Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...

  2. JAVA的三大特征 封装继承多态- 简单总结

    简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...

  3. java面向对象(封装-继承-多态)

    框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...

  4. Java三大特征之继承(二)

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  5. Java基础——面向对象(封装——继承——多态 )

    对象 对象: 是类的实例(实现世界中 真 实存在的一切事物 可以称为对象) 类: 类是对象的抽象描述 步骤: 1.定义一个类 (用于 描述人:) ( * 人:有特征和行为) 2.根据类 创建对象 -- ...

  6. OOP三大核心封装继承多态

    OOP支柱 3 个核心:封装 继承 多态 封装就是将实现细节隐藏起来,也起到了数据保护的作用. 继承就是基于已有类来创建新类可以继承基类的核心功能. 在继承中 另外一种代码重用是:包含/委托,这种重用 ...

  7. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  8. C++三大特性 封装 继承 多态

    C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对 ...

  9. java类的封装 继承 多态

    1.猜数字小游戏 package cn.jiemoxiaodi_02; import java.util.Scanner; /** * 猜数字小游戏 * * @author huli * */ pub ...

  10. 封装继承多态-java面向对象三大特征

    第七章  封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...

随机推荐

  1. 核心task

    由于Ant具有跨平台的特性,因此编写Ant生成文件时可能会失去一些灵活性.为了弥补这个不足,Ant提供了一个“exec”核心task,允许执行特定操作系统上的命令.

  2. 通达OA任意用户登录 漏洞复现

    0x00 漏洞简介 通达OA国内常用的办公系统,使用群体,大小公司都可以,其此次安全更新修复的高危漏洞为任意用户登录漏洞.攻击者在远程且未经授权的情况下,通过利用此漏洞,可以直接以任意用户身份登录到系 ...

  3. 【5min+】为你的.NET应用进行一次全方位体检

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...

  4. .Net Core主机配置

    Host:(主机)负责web应用程序的启用和生成期管理,配置服务器和请求处理管道. 主机配置日志,依赖注入关系,实际上是一个封装了应用资源的对象. 创建主机生成器-〉配置主机-〉创建主机-〉运行主机. ...

  5. 如何使用IE9浏览器自带开发人员工具捕获网页请求

    我们在通过浏览器访问一个网页的时候,有时候会遇到页面不能正常显示,图片不能正常加载的问题. 如果我们需要知道浏览器打开该网页时,网页中每个元素的加载情况.这时,我们便可以借助浏览器自带开发人员工具,来 ...

  6. Jmeter与LoadRunner的比较

    一.与Loadrunner的比较相似点 1.Jmeter的架构跟loadrunner原理一样, 都是通过中间代理,监控&收集并发客户端发现的指令,把他们生成脚本,再发送到应用服务器,再监控服务 ...

  7. php 判断是否手机端还是pc端

    来自:https://www.cnblogs.com/webenh/p/5621890.html 用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC ...

  8. 文件读取的时候要留意 -- 序列化serialize()与反序列化unserialize():

    原文:https://blog.csdn.net/little_rabbit_baby/article/details/53840543 序列化serialize()与反序列化unserialize( ...

  9. [Qt] 通过socket将另一个程序的某个窗口调到最前端

    @ // THIS IS A HACK: // from QT documentation: // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

  10. 消息中间件之zookper安装部署

    消息中间件之zookper安装部署jdk可以在官网或者网上下载[root@q tools]# chmod 755 jdk-8u40-linux-x64.rpm [root@q tools]# rpm ...