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. windows下用c++调用caffe做前向

    参考博客: https://blog.csdn.net/muyouhang/article/details/54773265 https://blog.csdn.net/hhh0209/article ...

  2. 正向代理or反向代理

    正向代理 我访问不了某网站比如www.google.com,但是我能访问一个代理服务器 这个代理服务器呢,它能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理 ...

  3. 阿里云 RDS for MySQL支持什么引擎

    问题:我们的服务器是买的是阿里云,mysql版本5.011 ,本地和服务器配置一样,在本地可以安装discuzX3.4,但是在服务器上却报错了,如下图: 找了半天,才知道阿里云RDS 支持的mysql ...

  4. Golang安装与命令

    1. 安装 Windows -  https://golang.org/dl/ 下载msi安装包,点击安装即可.安装后cmd运行go version弹出版本号即安装成功. 2. 命令行 生成exe文件 ...

  5. 【MIT-6.824】Lab 1: MapReduce

    Lab 1链接:https://pdos.csail.mit.edu/6.824/labs/lab-1.html Part I: Map/Reduce input and output Part I需 ...

  6. lockable JS function,解锁操作之前,不能重复操作

    (function () { var ed = []; window.Lockable = function (lockF, options) { if (!arguments.length) { v ...

  7. C博客作业01——分支、顺序结构

    1.本章学习总结 1.1思维导图 本章学习体会及代码量学习体会 1.2.1学习体会 在暑假的时候就有加入新生学习群,对C语言有一定的基础,所以这周的学习相对轻松,但一些细节方面的知识并不是很了解.在这 ...

  8. shell脚本学习之实例列举

    1.用shell写一个从1加到100的程序: 方法一: #!/bin/bashsum=0for i in {1..100}do   let sum+=$idone   echo $sum 方法二: # ...

  9. WEEK1

    #变量 var1: name = input('name:') age = input('age:) job = input('job:) salary = input('salary:) info ...

  10. go报错unimplemented: 64-bit mode not compiled in与mingw 64位安装报错ERROR res已解决

    问题一:cc1.exe: sorry, unimplemented: 64-bit mode not compiled in 参考:https://www.cnblogs.com/lesroad/p/ ...