1. 多态
定义: 一个接口,多种实现,就是多种状态    
价值:
特点:多态存在的特点,就是必须要有继承、覆盖、父类变量调用子类对象
场景:
  • 首先检查父类中是否有该方法,如果没有,则编译错误;如果有,则检查子类是否覆盖了该方法。
  • 如果子类覆盖了该方法,就调用子类的方法,否则调用父类方法。
怎么用:
声明:class Aniaml = new Cat();
 
  1. 动态绑定
怎么用:
m(new Animal(),new Food());
 
  1. 对象转换
分类:
  • 显式转换(强制转换)
  • 隐式转换(自然而然的转换,类比基本数据类型转换)
怎么用:
Person p1 = new Student();//隐式转换,小的转大的
 
Student s1 = new Person();//需要强制转换
如:Student s1 =(Student) new Person();
注意:如果父类对象不是子类的一个实例,就会报一个错误:java.lang.ClassCastException   类转换异常
 
  1. instance运算符
定义:instance是java的关键字,
价值:判断源对象是否是目标类的实例
怎么用:
b instanceof A //检验b是否是类A的实例
 
  1. 防止扩展和覆盖
关键字:final
价值:为了防止扩展和覆盖
特点:类和方法是终极的,不能再扩展和覆盖了
场景:有时候方法和类不允许被覆盖和扩展
分类:(例子)
  • Math
  • StringBuilder
  • StringBuffer
怎么用:
public final class Person
//定义这个类是个终极类,不可以被扩展
 
public final void eat(){
//定义这个方法是个终极方法,不可以被覆盖
{
 
 
  1. Object类的equals方法
价值:测试两个对象是否相等
特点: equals()方法只能比较引用类型
场景:   当用 equals() 方法进行比较时,对类 File、String、Date 及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例。
怎么用:
person p1 = new Person();
Student s1 = new Student();
s1.equals(p1);//判断S1对象和p1对象是否相等
 
比较:equals与==的区别
==
定义:看引用变量是否指向同一对象
特点: “==”可以比较引用类型及基本类型。用“==”进行比较时,符号两边的数据类型必须一致(可自动转换的数据类型除外),否则编译出错,而用 equals 方法比较的两个数据只要都是引用类型即可。
怎么用:
person p1 = new Person();
Student s1 = new Student();
boolean flag = (p1 == s1);//判断S1和p1两个引用变量是否指向同一对象
 
  1. 数组线性表
关键字;ArrayList
价值:用来存储对象的类,ArrayList类提供存储不限定个数的对象。
怎么用:
1. 首先创建一个空的线性表
java.util.ArrayList list = new java.util.ArrayList();
2. 然后调用各种方法:
 
 
 
 

java多态——基础的更多相关文章

  1. Java 多态基础

    多态的定义 程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在运行期间才确定. 或者是同一个行为具有多个不同表现形式或形态的能力. 多态的体现 在玩LOL时,W ...

  2. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  3. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  4. Java 多态——与C++的比较

    学习了Java和C++之后,由于长期不使用C++,而java的基础知识掌握不牢,现在已经搞不清java多态了.现在先来谈谈java多态,稍后有时间再更新C++的多态,并进行比较~ 一. Java的多态 ...

  5. C++和java多态的区别

    C++和java多态的区别 分类: Java2015-06-04 21:38 2人阅读 评论(0) 收藏 举报  转载自:http://www.cnblogs.com/plmnko/archive ...

  6. Android开发之Java必备基础

    Android开发之Java必备基础 Java类型系统 Java语言基础数据类型有两种:对象和基本类型(Primitives).Java通过强制使用静态类型来确保类型安全,要求每个变量在使用之前必须先 ...

  7. JAVA面试基础

    JAVA相关基础知识1.面向对象的特征有哪些方面 ?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂 ...

  8. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

  9. java多态的理解----部分非原创

    所谓多态,其实就是对于同一件事情,不同的对象要采取不同的行为,或者同一个对象在不同的情况下需要采取不同的行为方式. 不同的对象要采取不同的行为: 这有两种实现方式:接口实现和子类重新父类方法.这两种实 ...

随机推荐

  1. Confluence 6 从 WIKI 标记整合到基于 XHTML 的存储格式

    如果你现在正在将 Confluence 从一个老的版本升级到 Confluence 4.0 或者更新的版本 (例如从 Confluence 3.5.x 或者更老的版本),在升级的过程中一个内容整合过程 ...

  2. Confluence 6 在升级之前

    在这个指南中,我们将会与你一同对最新的 Confluence 站点在 Windows 或者 Linux 平台进行安装和更新. 如果你的 Confluence 安装实例是当前的许可证的话,那么对 Con ...

  3. Postman中x-www-form-urlencoded请求K-V的ajax实现

    在Postman中使用x-www-form-urlencoded,并且用K-V传值,但是在代码中用ajax来请求,传值一直有问题,静下心来思考才发现K-V传入的是string,所以记录下来以防忘记!! ...

  4. SYN-flood攻击

    原理:当TCP三次握手进行第一次握手时,客户端向服务端发送SYN请求报文,第二次握手服务端会返回一个SYN+ACK的一个确认报文,syn-flood攻击就发生在第三次握手,当客户端不去回应服务端的SY ...

  5. angular6 aot 预先编译

    angular.json文件:(红色加粗部分) { "$schema": "./node_modules/@angular/cli/lib/config/schema.j ...

  6. 笔记《JavaScript 权威指南》(第6版) 系统理论知识概要

    主要内容概要 [JavaScript语言核心]词法结构,类型.值和变量,表达式和运算符,语句,对象,数组,函数,类和模块,正则表达式的模式匹配,JavaScript的子集和扩展,服务器端JavaScr ...

  7. leetcode感想

    想想要参加秋招了,重新开始刷leetcode,记录一下自己在过程遇到的问题. 算法优化: 1.合并if分支. 2.将所有可以直接给出结果的特殊情况放在最前面直接返回.

  8. 【转】FluentAPI详细用法

    设置主键modelBuilder.Entity<x>().HasKey(t => t.Name); 设置联合主键modelBuilder.Entity<x>().HasK ...

  9. springBoot 随笔(一)

    服务化的世界,越来越多应用拆分为微服务,有些为了业务而拆,也有为了技术而拆,也有什么都不知道就瞎拆的,反正就是要微服务. 以下为一个认识springBoot的简单过程 1/eclipse 新建 mav ...

  10. echarts 图表后面背景色

    "splitArea": { "show": true, "areaStyle": { "color": [ " ...