• 多态性
  • instanceof 关键字
  • 接口的应用

一、多态性

1.多态性的体现:

方法的重载和重写

对象的多态性

2.对象的多态性:

  • 向上转型: 程序会自动完成

    父类 父类对象 = 子类实例

  • 向下转型: 强制类型转换

    子类 子类对象 = (子类)父类实例

class A{
public void tell1(){
System.out.println("A--tell1");
} public void tell2(){
System.out.println("A--tell2");
}
} class B extends A{
public void tell1(){
System.out.println("B--tell1");
} public void tell3(){
System.out.println("B--tell3");
}
}
public class test01 { public static void main(String[] args)
{
//向上转型——系统自动完成
B b = new B();
A a = b; //子类对象赋值给父类对象
a.tell1(); //方法重写,output :B--tell1
a.tell2(); //OUTPUT: A--tell2 //向下转型——强制转换
A a = new B(); //子类赋值给父类,部分匹配
B b = (B)a;
b.tell1();
b.tell2();
b.tell3();
OUTPUT:
B--tell1
A--tell2
B--tell3
} }

二、instanceof关键字

2.1 用于判断一个对象到底是不是一个类的实例

返回值为布尔类型

class A{
public void tell1(){
System.out.println("A--tell1");
} public void tell2(){
System.out.println("A--tell2");
}
} class B extends A{
public void tell1(){
System.out.println("B--tell1");
} public void tell3(){
System.out.println("B--tell3");
}
}
public class test01 { public static void main(String[] args)
{
A a = new A ();
System.out.println(a instanceof A);
System.out.println(a instanceof B); A a1 = new B ();
System.out.println(a1 instanceof A);
System.out.println(a1 instanceof B);
} } OUTPUT:
true
false
true
true

三、接口应用

interface USB{
void start();
void stop();
}
class C {
public static void work(USB u ){
u.start();
System.out.println("Working");
u.stop();
}
} class USBdisk implements USB{
public void start(){
System.out.println("the USB Disk is working");
}
public void stop(){
System.out.println("the USB Disk stopped");
}
} public class inter01 { public static void main(String[] args) {
// TODO Auto-generated method stub
C.work(new USBDisk());
} }

【JAVA语法】04Java-多态性的更多相关文章

  1. Java语法知识总结

    一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...

  2. 将子类对象引用赋值给超类对象 JAVA 编译时多态性

    将子类对象引用赋值给超类对象 JAVA 编译时多态性(转) (2012-05-10 11:24:05) 转载▼ 标签: 杂谈 分类: 也无晴_soft 1.通过将子类对象引用赋值给超类对象引用变量来实 ...

  3. Java语法

    java语法: 一个java程序可以说是一系列对象的集合,而这些对象都要通过调用彼此的方法来协同工作. 对象: 对象是一个实例,例如:一只猫,它是一个对象,有状态和行为.它的状态状态有:颜色,名字,品 ...

  4. Java语法糖1:可变长度参数以及foreach循环原理

    语法糖 接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的 ...

  5. 程序员带你学习安卓开发,十天快速入-对比C#学习java语法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  6. Java语法基础(1)

    Java语法基础(1) 1.      Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...

  7. C++、Java语法差异对照表

    C++.Java语法差异对照表 C++ and Java Syntax Differences Cheat Sheet First, two big things--the main function ...

  8. jsp页面执行java语法,获取的值在页面调用

    首先在页面头引用用到类的包路径 写需要执行的java语法 页面转换引用 <!-- 引用包路径 --> <%@ page language="java" impor ...

  9. Java语法之反射

    一.反射机制 在前面Java语法之注解自定义注解时我们也有提到反射,要获取类方法和字段的注解信息,必须通过Java的反射技术来获取 Annotation对象.那什么是反射呢?JAVA反射机制是在运行状 ...

  10. Java语法糖设计

    语法糖 Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这 ...

随机推荐

  1. 第十次 Scrum Meeting

    第十次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/4/16 14:30 30min 新主楼F座2F 附Github仓库:WEDO 例会照片 工作情况总结 人员 上阶 ...

  2. saltstack源码详解一

    目录 初识源码流程 入口 1.grains.items 2.pillar.items 2/3: 是否可以用python脚本实现 总结pillar源码分析: @(python之路)[saltstack源 ...

  3. Python操作Excel(将父子级表头生成树状结构)

    import re class Node: ''' 容器,用来存储前后节点信息 ''' __slot__=[] def __init__(self,val,next_,pre,name,no): se ...

  4. 解决执行maven项目出现 SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”. error

    最近再弄maven项目,运行起来没有问题,但是Console控制台会报错,比如说如下的问题异常提示: 由此我们可以看出,报出错误的地方主要是slf4j的jar包,而故障码中“Failed to loa ...

  5. Python多线程&进程

    一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...

  6. 关于在真实物理机器上用cloudermanger或ambari搭建大数据集群注意事项总结、经验和感悟心得(图文详解)

    写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentOS6.5版本)和clo ...

  7. 【c++】explicit 隐式类类型转换

    上代码 #include <iostream> #include <sstream> using namespace std; class A { public: A(cons ...

  8. C语言入门语法

    一.数据类型 常量 1.通过预处理声明常量 #include <stdio.h> #define PRICE 100 int main() { printf("价格:%d\n&q ...

  9. .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter

    dump文件相信有些朋友已经很熟悉了,dump文件的作用在于保存进程运行时的堆栈信息,方便日后排查软件故障,提升软件质量.关于dump分析工具windbg.adplus的文章更多了,如果您还不知道怎么 ...

  10. Java - 谨慎覆盖equals

    平时很难遇到需要覆盖equals的情况. 什么时候不需要覆盖equals? 类的每个实例本质上是唯一的,我们不需要用特殊的逻辑值来表述,Object提供的equals方法正好是正确的. 超类已经覆盖了 ...