当前位置: 首页 > java >正文

Java基础 5.27

多态注意事项和细节讨论

  • 属性没有重写之说 属性的值看编译类型
package com.logic.poly_.detail_;public class PolyDetail02 {public static void main(String[] args) {Base base = new Sub();System.out.println(base.count);Sub sub = new Sub();System.out.println(sub.count);}
}class Base {int count = 10;
}class Sub extends Base {int count = 20;
}
  • instanceOf比较操作符 用于判断对象的运行类型是否为XX类型或XX类型的子类型 
package com.logic.poly_.detail_;public class PolyDetail03 {public static void main(String[] args) {//编译类型是BB 运行类型是BBBB bb = new BB();System.out.println(bb instanceof BB);System.out.println(bb instanceof AA);//编译类型是AA 运行类型是BBAA aa = new BB();System.out.println(aa instanceof AA);System.out.println(aa instanceof  BB);Object obj = new Object();System.out.println(obj instanceof AA);String str = "logic";System.out.println(str instanceof Object);}
}class AA {} //父类
class BB extends AA{} //子类

多态练习

package com.logic.poly_.detail_;public class PolyPractice {public static void main(String[] args) {double d = 13.4;//oklong i = (long)d;//okSystem.out.println(i);//13int in = 5;//okboolean b = (boolean)in;//不对 boolean -> intObject obj = "hello";//ok 向上转型String objStr = (String) obj;//ok 向下转型System.out.println(objStr);//helloObject objPri = new Integer(5);//ok 向上转型String str = (String) objPri;//不对 ClassCastException//指向Integer的父类引用 转成StringInteger str1 = (Integer) objPri;//ok 向下转型}
}
package com.logic.poly_.detail_;public class PolyPractice02 {public static void main(String[] args) {B b = new B();System.out.println(b.count);//20b.display();//20A a = b;System.out.println(a == b);//trueSystem.out.println(a.count);//10a.display();//20}
}
class A {public int count = 10;public void display() {System.out.println(this.count);}
}
class B extends A {public int count = 20;public void display() {System.out.println(this.count);}
}
http://www.xdnf.cn/news/9362.html

相关文章:

  • Oracle初识
  • 遗传算法简明指南:思路解析与C++实现
  • C++优先队列(priority_queue)使用详解
  • 计算机系统结构-第四章节-背诵
  • 使用Auto-Coder对js文件进行审计并修复漏洞1.3 1.4 1.5版本
  • BugKu Web渗透之Post
  • Python 实现简易版的文件管理(结合网络编程)
  • linux kernel 内存回收水位线调整方法
  • 第九章 Java基础-集合
  • 鸿蒙OSUniApp 制作简洁的用户个人中心页面#三方框架 #Uniapp
  • 【Springboot+LangChain4j】实现多轮对话,即记忆对话功能
  • v4.0 论文投稿-Latex论文投稿注意事项
  • 基于Alibaba Cloud Linux + 宝塔面板安装 LibreOffice 全攻略流程
  • 怎么实现pid隔离
  • 海信IP810N-72UB0贵州联通原机分区备份包
  • mysql 合集
  • TLE9893-2QKW62S新建Keil MDK工程
  • cursor使用mcp
  • 智能门禁的项目
  • 用 Python 打造你的专属虚拟试衣间!——AI+AR 如何改变时尚体验
  • 关于CSDN和Github的操作
  • vtk管线
  • 递归:JavaScript中的强大工具
  • Java 继承(上)
  • 使用Auto-Coder对js文件进行审计并修复漏洞 1.5版本
  • leetcode 53. 最大子数组和
  • How API Gateways handle raw TCP packets
  • Python解压多种格式压缩包
  • 【git】 pull + rebase 或 pull + merge什么区别?
  • Java 继承(下)