一、封装性

  含义:对外不可见,保护属性和方法不被外部多看见

  实现:通过关键字private声明,用get、set方法为外部访问。

  引用的传递:

    static关键字:修饰属性(全局属性);修饰方法(直接通过类名调用)

    static方法中只能访问static声明的属性和方法。

    可以实例化之前就用static:  Person.setName("name");//静态方法  Person p = new Person();

    this关键字:表示类中的属性和方法;调用本类中的构造方法;表示当前对象。

      public People(){ this();//调用默认无参的构造方法必须首行   this.name = name; this.age = age;}

    内部类:对象只用一次  垃圾自动回收 new Person().tell();

二、继承性

  含义:扩展类的功能

  实现:通过关键字extends。限制:只允许单继承。

  继承过程构造方法调用顺序:实例化子类对象-》先调用父类构造方法-》再调用子类构造方法

  方法的重写:子类重写父类方法

        子类.方法()只会执行子类的内容

        子类.方法(){super.方法()}强制执行走父类的方法+子类的其他

        被子类重写的方法不能拥有比父类更加严格的访问权限

        访问权限:private<default<public(私有、同一个包下、整个工程下) 

  抽象类:

    抽象类:包含一个抽象方法的类就是抽象类

    抽象方法:声明并未被实现的方法,使用关键字abstract声明

    abstract class className{属性;方法;抽象方法}

    抽象类不能被实例化,要通过其子类进行实例化。(必须实现所有的抽象方法)

  接口:

    接口:是一种特殊的类,里面全部由全局变量和公共的抽象方法所组成。

    interface interfaceName{全局常量(public static final name);抽象方法(public abstract void name())}

    接口的实现必须是通过子类,使用implements,而且接口是可以多实现的。(必须实现所有的抽象方法)

  一个类可以同时继承抽象类和接口。

  一个接口不能继承一个抽象类,但是可以通过extends关键字同时继承多个接口。(interface Intent3 extends Intent1,Intent2{})

  final关键字:

    被称为完结器,表示最终的意思。能声明类、方法、属性。

    使用final声明的类不能被继承;使用final声明的方法不能被重写;使用final声明的常量不能被修改(name大写)。

     

  

三、多态性

  含义:方法的重载,对象的多态性。

  向上转型  程序自动完成     父类  父类对象 = 子类示例    (父类.方法()调用子类复写的方法)

  向下转型  强制类型转换     子类  子类对象 = (子类)父类示例   (先向上再向下)

  class A {tell1()}

  class B extends A {tell2()}

  class C extends A {tell3()}

  say(new B());  say(new C());  

  say(A a){a.tell1()}

  instanceof关键字:判断一个对象到底是不是一个类的实例。

    A a = new B();     a instanceof A  true;   a instanceof B  true;

  方法的重载:

    含义:方法名相同。但是参数类型和个数不同。来完成不同的功能。

  递归调用:自己调自己。得有出口。。。

    

Java的三大特性的更多相关文章

  1. Java 浅析三大特性之一继承

    上文Java 浅析三大特性之一封装我们说到Java是一个注重编写类,注重于代码和功能复用的语言.Java实现代码复用的方式有很多,这里介绍一个重要的复用方式--继承. 在介绍继承之前,我们要明确一点, ...

  2. java提高篇(四)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  3. java提高篇(二)-----理解java的三大特性之继承

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

  4. java提高篇(三)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  5. java提高篇(二)-----理解java的三大特性之继承

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

  6. (转)java提高篇(二)-----理解java的三大特性之继承

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

  7. java基础(二)-----java的三大特性之继承

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

  8. java基础(一)-----java的三大特性之封装

    面向对象编程有三大特性:封装.继承.多态.本文将介绍java的三大特性之封装 封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成 ...

  9. java-----理解java的三大特性之多态

    的java提高篇(四)-----理解的java的三大特性之多态 面向对象编程有三大特性:封装,继承,多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外 ...

  10. Java提高篇之理解java的三大特性——继承

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

随机推荐

  1. 完成一个java项目需要的一些基础

    包括  1.eclipse关键字      2.文档注      3. jar包的导出与导入 一.elipse关键字 ctry+t       查看父类 ctry+鼠标光标     查看源代码 二.文 ...

  2. 在app中从下向上滑动,以找到不在默认第一页的元素

    1.在app中,如果第一面没有出现你要的元素,需要下滑拉动到你需要的元素的位置

  3. IDEA+API && SPI

    JAVA中API和SPI的区别:https://blog.csdn.net/quanaianzj/article/details/82500019

  4. WPF动态模板选择的两种实现

    前言 .net开发工作了六年,看了大量的博客,现在想开始自己写博客,这是我的第一篇博客,试试水,就从自己最常使用的WPF开始. 今天我来给大家分享可用户动态选择控件模板的两种实现方式:DataTrig ...

  5. Java里的不能与无用.

    不能获取参数名 , 导致函数的参数名无用. 在MyBatis的方法里. 参数名是无法反射得到的. 导致必须使用注解,指定参数名. 这样的话. 参数名就没有了意义.

  6. Codeforces Round #498 (Div. 3)--E. Military Problem

    题意问,这个点的然后求子树的第i个节点. 这道题是个非常明显的DFS序: 我们只需要记录DFS的入DFS的时间,以及出DFS的时间,也就是DFS序, 然后判断第i个子树是否在这个节点的时间段之间. 最 ...

  7. OracleSql语句学习(四)

    SELECT e.ename,m.ename,d.locFROM emp_weiyiji e JOIN emp_weiyiji m ON e.mgr=m.empnoJOIN dept_weiyiji ...

  8. Tutorial 01_熟悉常用的Linux操作和Hadoop操作

    (一)熟悉常用的Linux 操作cd 命令:切换目录 (1) 切换到目录“/usr/local” (2) 切换到当前目录的上一级目录 (3) 切换到当前登录Linux 系统的用户的自己的主文件夹  ...

  9. vscode在vue-cli中按照ESlint自动格式化代码

    先安装 1 npm i -S eslint-plugin-vue .eslintrc下 1 2 3 "plugins": [     "vue" ] vscod ...

  10. QTP自动化测试-打开运行报告

    automation菜单下-点击 result