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

杭州网页模板建站南宁百度推广代理商

杭州网页模板建站,南宁百度推广代理商,网站建设的素材,企业网页制作软件1.5 多态 ​ *多态(polymorphic) ​ *方法或对象具有多种形态#xff0c;是面向对象的第三大特征#xff0c;多态是建立在封装和继承基础之上的 1.多态的具体体现 1.方法的多态 #xff08;重写和重载体现了多态#xff09; 2.对象的多态 ​ 1.一个对象的编译类型和…1.5 多态 ​ *多态(polymorphic) ​ *方法或对象具有多种形态是面向对象的第三大特征多态是建立在封装和继承基础之上的 1.多态的具体体现 1.方法的多态 重写和重载体现了多态 2.对象的多态 ​ 1.一个对象的编译类型和运行类型可以不一致 Animal animal new Dog(); //animal编译类型是Animal运行类型是Dog animal new Cat();​ 2.编译类型在定义对象时就确定了不能改变 ​ 3.运行类型是可以变化的 ​ 4.编译类型看定义时号的左边运行类型看 号的右边 class Cat extends Animal {public void cry(){System.out.println(小猫喵喵叫)} }class Animal {public void cry(){System.out.println(动物在叫)} }main() {Animal animal new Cat();animal.cry(); //小猫喵喵叫//若此时改为Dog类则会执行Dog类下的方法animal new Dog();animal.cry(); }2.多态的细节 1.多态的前提两个对象(类)存在继承关系 2.本质父类的引用指向了子类的对象 3.语法父类类型 引用名 new 子类类型(); 4.特点编译类型看左边运行类型看右边 5.如果子类中写有父类没有的方法那么如果运用了多态就调用不了子类特有的成员方法 3.多态的向上转型 ​ *(子类转换成父类) ​ *父类也可以是爷爷类(基类) 4.多态的向下转型 ​ 1.语法 子类类型 引用名 (子类类型) 父类引用 ​ 2.只能强转父类的引用不能强转父类的对象 ​ 3.要求父类的引用必须指向的是当前目标类型的对象 ​ 4.当向下转型后可以调用子类类型中所有的成员 main() {Animal animal new Cat(); //原来的animal的运行类型是Cat对象所以可以在下面强转为Cat类型Cat cat (Cat) animal;//强转父类引用为为子类 这样就可以调用子类的特有成员方法 }5.注意事项和细节 1.属性没有重写直说属性的值看编译类型 class Base {int money 10; }class Sub extends Base {int money 20; }main() {Base base new Base();base.money;//10Sub sub new Sub();sub.money;//20 }2.instanceof 比较操作符用于判断对象的运行类型是否为XX类型或XX类型的子类型 class AA{}//父类 class BB extends AA{}//子类main() {BB bb new BB();System.out.println(bb instanceof BB);//bb是不是BB的类型返回结果为boolean值System.out.println(bb instanceof AA);//aa 编译类型 AA运行类型BBAA aa new BB();System.out.println(aa instanceof AA);//trueSystem.out.println(aa instanceof BB);//true }6.动态绑定机制 1.当调用对象方法的时候该方法会和该对象的内存地址/运行类型绑定 2.当调用对象属性时没有动态绑定机制哪里声明(函数里面的成员属性为函数所在类下的成员属性)哪里使用 class A {public int i 10;public int sum(){return getI() 10;}public int sum1(){return i 10;}public int getI(){return i;} }class B extends A {public int i 20;public int sum(){return i 20;}public int getI(){return i;}public int sum1(){return i 10;} }main() {A a new B();//向上转型System.out.println(a.sum());//40System.out.println(a.sum1());//30 }7.多态的应用 1.多态数组 ​ *数组的定义类型为父类类型里面保存的实际元素类型为子类类型 class Teacher extends Person {String name;int salary;public void say(){}public void teach(){} }class Student extends Person {String name;int score;public void say(){}public void study(){} }class Person {public void say(){} }main() {Person[] persons new Person[5];persons[0] new Person(jack, 20);persons[1] new Student(jack,18,100);persons[2] new Teach(scott ,30 ,20000);for(int i 0;i3;i){System.out.println(persons[i].say());//动态板顶机制if(persons[i] instancof Student){Student student (Student)persons[i];//向下转型student.study();}else if(persons[i] instanceof Teacher){Teacher teacher (Teacher)persons[i];teacher.teach();} else{System.out.println(你的类型有误请自己检查...)}} }2.多态参数 ​ *方法定义的形参类型为父类类型实参类型允许为子类类型 1.6 Object类 1.equals方法 ​ * 是一个比较运算符 1.既可以判断基本类型又可以判断引用类型 2.如果判断基本类型判断的是值是否相等 3.如果判断引用类型判断的是地址是否相等即判定是不是同一个对象 4.equals是Object类的方法只能判断引用类型 5.默认判断的是地址是否相等子类中往往重写该方法用于判断内容是否相等。比如IntegerString 2.重写equals方法 class Person {private String name;private int age;private char gender;//重写Object的equals方法public boolean equals(Object obj){if(this obj){return true;}}//类型判断if(obj instanceof Person){//是Person,我们才比较Person p (Person)obj;return this.name.equals(p.name) this.age p.age this.gender p.gender;}//如果不是Person类型则直接返回falsereturn false; }1.7 hashCode ​ *hashCode返回该对象的哈希码值 ​ *总结 1.提高具有哈希结构的容器的效率 2.两个引用如果指向的是同一个对象则哈希值肯定是一样的 3.两个引用如果指向的是不同对象则哈希值是不一样的 4.哈希值主要根据地址号来的不能完全将哈希值等价于地址 1.8 toString ​ *返回该对象的字符串表示 ​ *基本介绍 1.默认返回全类名(包名 类名) 哈希值的十六进制 2.当直接输出一个对象时toString会被默认调用 System.out.println(monster); System.out.println(monster.toString());//这两个是等价的1.9 finalize 1.当对象被回收时系统自动调用该对象的finalize方法子类可以重写该方法做一些释放资源的操作 2.什么时候被回收当某个对象没有任何引用时则jvm就认为这个对象是一个垃圾对象就会使用垃圾回收机制来销毁该对象在销毁对象前会先调用finalize方法 3.垃圾回收机制的调用是由系统来决定也可以通过System.gc()主动触发垃圾回收机制 main() {Car bmw new(宝马);bmw null;System.gc(); //主动调用垃圾回收器 }1.10 断点调试(debug) 1.在开发中新手程序员在查找错误时这时老程序员就会温馨提示可以用断点调试一步一步的看原码执行的过程发现错误 2.在断点调试过程中是运行状态是以对象的运行类型来执行的 1.断点调试介绍 1.断点调试是指在程序的某一行设置一个断点调试时程序运行到这一行就会停住然后可以一步一步往下调试调试过程中可以看各个变量当前的值 2.断点调试的快捷键 F7(跳入) 跳入方法内 F8(跳过) 逐行执行代码 shift F8(跳出) F9(resume,执行到下一个断点)
http://www.zqtcl.cn/news/326114/

相关文章:

  • 钓鱼网站营销型网站建设实战
  • 可以下载电影的网站怎么做做网站公司西安
  • 自己做签名网站网店美工培训教程
  • 宁波产品网站设计模板php 网站 教程
  • 制作一个网站的费用是多少免费网站空间怎么
  • 如何建立自己的微网站网站建设教程怎么建
  • seo网站项目讲解沈阳网红
  • 苏州大型网站建设公司网站外链优化
  • 阿里云购买域名后怎么建网站沂南网站设计
  • 网站建设基础考试php网站开发入门
  • 广州五屏网站建设seo诊断报告示例
  • 周浦高端网站建设公司信阳做网站的公司
  • 博客网站怎么建设湛江新闻头条最新消息
  • 外贸网站建设 评价有没有教做网站实例视频
  • 县 住房和城乡建设局网站wordpress接入支付宝
  • 网站建设初期推广方式天津网站建设案例
  • 销项税和进项导入是在国税网站做吗凡科网站模块
  • 苏州建网站皆去苏州聚尚网络常州企业建站系统
  • 网站建设明细wordpress 主题稳定
  • 网站设计论文前言怎么写肇庆网站开发哪家专业
  • 商城建站系统松江新城做网站公司
  • 长沙招聘做搜狗pc网站优化排
  • 辽宁智能建站系统价格金融做市场广告挂哪些网站
  • 做外贸的有哪些网站互动平台游戏
  • 网站设计最好的公司idc网站模板源码下载
  • 网站建设历史视频制作软件有哪些
  • 加盟网站制作定制桥的设计网站建设
  • 深圳做宣传网站的公司开发电商网站多少钱
  • 自适应网站建设公司什么是网站死链
  • 自己给网站做支付接口wordpress elementor