• 多态性
  • 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. 高阶篇:4.2)DFMEA设计失效模式和失效后果分析-总章

    本章目的:了解FMEA和DFMEA的概念. 1.什么是FMEA(what) 潜在的失效模式及后果分析(Potential Failure Mode and Effects Analysis,简称FME ...

  2. Luogu - P3384 树链剖分 [挂模板专用]

    题意:请码个树剖模板支持子树区间加/查询和路径加/查询 纯练手 盲敲技能++ 以后网络赛复制模板速度++++ 对链操作时注意方向 #include<bits/stdc++.h> #defi ...

  3. js小仓库

    1.千分位分隔符 const toDecimalMark = num => num.toLocaleString("en-US"); console.log(toDecima ...

  4. CentOS7 MongoDB安装及基本配置

    一.安装包的获取 1.创建文件: vi /etc/yum.repos.d/mongodb-org-4.0.repo 2.在上一步创建的文件中,写入如下内容: [mongodb-org-4.0] nam ...

  5. less变量插值

    在使用less的过程中,我在background的中引用图片路径,希望先确定一个baseurl,然后再在url中使用拼接字符串的方式拼接,尝试多次,失败. 实际上less的变量插值是有自己的一套规则的 ...

  6. 【ExtJS】简单布局应用

    前几天学习了ExtJS的各种布局后,以下就是各种实践,从简单做起. 实现目的: 一个提交表单页,一个显示信息页,表单为个人基本资料输入,显示页为基本信息展示. 内容: 总体布局为border布局,展示 ...

  7. Django查询一个权限中包含哪些用户

    Django查询一个权限中包含哪些用户 Django的Permission对象中没有直接查询相关用户的信息,而都是通过User对象来查询某个用户有哪些权限,例如: user.objects.get(u ...

  8. poj 3748 位操作

    位操作 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8856   Accepted: 3535 Description 假 ...

  9. step3: 创建jobbole爬虫

    scrapy startproject Redbacktestcd Redbacktest 创建jobbole爬虫 scrapy genspider jobbole2 blog.jobbole.com ...

  10. 深入理解JavaScript系列(47):对象创建模式(上篇)

    介绍 本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码. 模式1:命名空间(namespace) 命名空间可以减少全局命名所需的数量,避免命名冲突或过度. ...