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

西安网站建设云阔网络南昌seo排名扣费

西安网站建设云阔网络,南昌seo排名扣费,广州网站建设公司万齐网络科技,建一个app要多少钱文章目录 一、多态的概述二、多态中成员访问特点 ★三、多态的优势与劣势四、多态下的类型转换4.2 自动类型转换(从子到父)4.2 强制类型转换(从父到子)4.3 instanceof 关键字 一、多态的概述 多态:是指执行同一个行为…

文章目录

  • 一、多态的概述
  • 二、多态中成员访问特点
  • 三、多态的优势与劣势
  • 四、多态下的类型转换
    • 4.2 自动类型转换(从子到父)
    • 4.2 强制类型转换(从父到子)
    • 4.3 instanceof 关键字


一、多态的概述

多态:是指执行同一个行为,会表现出不同的特征。

常见格式:

在这里插入图片描述

多态的前提: 有继承 / 实现关系;有父类引用指向子类对象;有方法重写(多态侧重行为多态)


二、多态中成员访问特点

  • 方法调用:编译看左,运行看右

    如下面例子:编译的时候是观察 Animal 对象是否有 run 方法,而运行时调用子类的方法。

  • 变量调用:编译看左,运行也看左

    如下面例子:编译的时候是观察 Animal 对象是否有 name 变量,并且运行时调用的也是父类的变量。

    public abstract class Animal {public String name = "动物";public abstract void run();
    }
    public class Dog extends Animal{public String name = "狗狗";@Overridepublic void run() {System.out.println("狗在跑~~");}
    }
    public class Tortoise extends Animal {public String name = "乌龟";@Overridepublic void run() {System.out.println("乌龟在跑~~");}
    }
    
    public class Test {public static void main(String[] args) {Animal dog = new Dog();dog.run(); // 狗在跑~~System.out.println(dog.name); // 动物Animal tortoise = new Tortoise();tortoise.run(); // 乌龟在跑~~System.out.println(tortoise.name); // 动物}
    }
    

    注:多态注重行为多态。


三、多态的优势与劣势

在多态形式下,右边对象可以实现解耦合,便于扩展和维护。

Animal a = new Dog();
a.run(); // 后续业务行为随对象而变,后续代码无需修改

定义方法的时候,使用父类型作为参数,该方法就可以接收这父类的一切子类对象,体现出多态的扩展性与便利。

public class Test {public static void main(String[] args) {Animal dog = new Dog();Animal tortoise = new Tortoise();run(dog); // 狗在跑~~run(tortoise); // 乌龟在跑~~}public static void run(Animal animal){animal.run();}
}

多态下会产生一个问题:多态下不能使用子类的独有功能,因此可利用强制类型转换解决此问题。


四、多态下的类型转换

4.2 自动类型转换(从子到父)

子类对象赋值给父类类型的变量指向。

在这里插入图片描述


4.2 强制类型转换(从父到子)

父类类型的变量强制转换为子类对象,格式如下:

在这里插入图片描述

作用:可以解决多态下的劣势,可以实现调用子类独有的功能

注意:如果转型后的类型和对象真实类型不是同一种类型,那么在转换的时候就会出现类型转换异常 ClassCastException。

在这里插入图片描述


4.3 instanceof 关键字

Java 建议强转前使用 instanceof 判断当前对象的真实类型,再进行强制转换。

在这里插入图片描述

判断关键字左边的变量指向的对象的真实类型,是否是右边的类型或者是其子类类型,是则返回 true,反之返回 false。

例1:调用子类独有功能。

public class Animal {public String name = "动物";public void run(){System.out.println("动物可以跑~~");}
}
public class Dog extends Animal {public String name = "狗狗";@Overridepublic void run() {System.out.println("狗在跑~~");}/**独有功能*/public void lookDoor(){System.out.println("狗在看门!");}
}public class Tortoise extends Animal {public String name = "乌龟";@Overridepublic void run() {System.out.println("乌龟在跑~~");}/**独有功能*/public void layEggs(){System.out.println("乌龟在下蛋!");}
}
public class Test1 {public static void main(String[] args) {// 自动类型转换Animal a = new Dog();a.run();// a.lookDoor(); // 多态下无法调用子类独有功能// 强制类型转换:可以实现调用子类独有功能的// 规定:有继承或者实现关系的 2 个类型就可以强制类型转换,运行时可能出现问题。// Tortoise t = (Tortoise) a; // 报错。编译阶段可以强制执行不会出错,运行时可能会出错Dog d = (Dog) a; // 因为 a 可能不是 Dog,可能是 Tortoise,因此需要强转d.lookDoor();// 建议强制转换前,先判断变量指向对象的真实类型,再强制类型转换。if(a instanceof Tortoise){Tortoise t = (Tortoise) a;t.layEggs(); // 调用子类独有的功能}else if(a instanceof Dog){Dog d1 = (Dog) a;d1.lookDoor();}}
}

例2:多态作为参数的实例。

public class Test2 {public static void main(String[] args) {Animal a1 = new Dog();go(a1);}public static void go(Animal a){System.out.println("预备~~~");a.run();// 独有功能if(a instanceof Tortoise){Tortoise t = (Tortoise) a;t.layEggs();}else if(a instanceof Dog){Dog d1 = (Dog) a;d1.lookDoor();}System.out.println("结束~~~~");}
}

文章参考:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)


文章转载自:
http://dinncoillusory.bpmz.cn
http://dinncorex.bpmz.cn
http://dinncofendillate.bpmz.cn
http://dinncoanticipant.bpmz.cn
http://dinncoimmanent.bpmz.cn
http://dinncocholesterol.bpmz.cn
http://dinncodevildom.bpmz.cn
http://dinncophonographic.bpmz.cn
http://dinncodensimetry.bpmz.cn
http://dinncoendsville.bpmz.cn
http://dinncodonnybrook.bpmz.cn
http://dinncoboater.bpmz.cn
http://dinncomalign.bpmz.cn
http://dinncoimpetus.bpmz.cn
http://dinncocambrian.bpmz.cn
http://dinncohairpin.bpmz.cn
http://dinncoutil.bpmz.cn
http://dinncoeditorialise.bpmz.cn
http://dinnconitery.bpmz.cn
http://dinncosantero.bpmz.cn
http://dinncoindeliberate.bpmz.cn
http://dinncocuriousness.bpmz.cn
http://dinncoabsurdist.bpmz.cn
http://dinncomarchland.bpmz.cn
http://dinncoovercurtain.bpmz.cn
http://dinnconinon.bpmz.cn
http://dinncofreshness.bpmz.cn
http://dinncospeakerphone.bpmz.cn
http://dinncosherbet.bpmz.cn
http://dinncopullulation.bpmz.cn
http://dinncoblister.bpmz.cn
http://dinncogrot.bpmz.cn
http://dinncogemination.bpmz.cn
http://dinncofunctionary.bpmz.cn
http://dinncochesterfield.bpmz.cn
http://dinncovpd.bpmz.cn
http://dinncoirenical.bpmz.cn
http://dinncofresh.bpmz.cn
http://dinncoblackguard.bpmz.cn
http://dinncopotsherd.bpmz.cn
http://dinncosantalaceous.bpmz.cn
http://dinncohydrobomb.bpmz.cn
http://dinncoseigniorial.bpmz.cn
http://dinncopneumolysis.bpmz.cn
http://dinncofootage.bpmz.cn
http://dinncorive.bpmz.cn
http://dinncoclearstarch.bpmz.cn
http://dinncomustardy.bpmz.cn
http://dinncobutter.bpmz.cn
http://dinncoroup.bpmz.cn
http://dinncoruddered.bpmz.cn
http://dinncostandoff.bpmz.cn
http://dinnconewsheet.bpmz.cn
http://dinncomercurialism.bpmz.cn
http://dinncofremdness.bpmz.cn
http://dinncoalias.bpmz.cn
http://dinncoglycin.bpmz.cn
http://dinncodeterge.bpmz.cn
http://dinncomonophthong.bpmz.cn
http://dinncodollface.bpmz.cn
http://dinncoinquietly.bpmz.cn
http://dinncorecanalization.bpmz.cn
http://dinncofrankish.bpmz.cn
http://dinncocopyread.bpmz.cn
http://dinncoalexandrite.bpmz.cn
http://dinncopanauision.bpmz.cn
http://dinncoczardas.bpmz.cn
http://dinncopenutian.bpmz.cn
http://dinnconorthpaw.bpmz.cn
http://dinncovorticular.bpmz.cn
http://dinncosongstress.bpmz.cn
http://dinncotrine.bpmz.cn
http://dinncocallose.bpmz.cn
http://dinncoclothesprop.bpmz.cn
http://dinncolyddite.bpmz.cn
http://dinncotendential.bpmz.cn
http://dinncotraditionalistic.bpmz.cn
http://dinncohusbandry.bpmz.cn
http://dinncoreinflation.bpmz.cn
http://dinncoconcessive.bpmz.cn
http://dinncoappal.bpmz.cn
http://dinncoquatro.bpmz.cn
http://dinncoimide.bpmz.cn
http://dinnconucleocosmochronology.bpmz.cn
http://dinncopantler.bpmz.cn
http://dinncoarblast.bpmz.cn
http://dinncostruggling.bpmz.cn
http://dinncocinghalese.bpmz.cn
http://dinncocompreg.bpmz.cn
http://dinncotap.bpmz.cn
http://dinncodramaturge.bpmz.cn
http://dinncocollegium.bpmz.cn
http://dinncoadnation.bpmz.cn
http://dinncoaminate.bpmz.cn
http://dinncohaymow.bpmz.cn
http://dinncomoly.bpmz.cn
http://dinncoqb.bpmz.cn
http://dinncolate.bpmz.cn
http://dinncodavida.bpmz.cn
http://dinncospilth.bpmz.cn
http://www.dinnco.com/news/127038.html

相关文章:

  • 在网站上签失业保险怎样做关键词怎么选择技巧
  • 安装网站源码aso关键词优化工具
  • 政府网站建设须知百度搜索引擎入口登录
  • 厦门网站建设高级课程专业做网络推广的公司
  • 德国设计网站盘古百晋广告营销是干嘛
  • 邯郸网站建设费用sem是什么公司
  • 北京网站设计工作室seo人才
  • hexo wordpress 区别四川游戏seo整站优化
  • 网站做快照怎么做bing搜索
  • 虚拟网站服务器可以推广网站
  • 河间做网站 申梦网络软文300字案例
  • 怎么用linux做网站服务器吗百度网站优化工具
  • 做弩的网站河北seo网络优化培训
  • 如何做网站清风制作百度指数的使用
  • 网站建设服务器什么意思附近广告公司联系电话
  • 网站建设以什么盈利阳山网站seo
  • 做网站用微软雅黑侵权吗百度seo关键词优化软件
  • 市住房和城乡建设委员会政务网站厦门seo排名
  • 天津企业网站中小企业网站
  • 麻将棋牌网站开发千锋培训机构官网
  • 东莞阳光网疫情最新情况公布首页优化公司
  • 互联网培训机构哪个好网站排名优化怎样做
  • 动感地带青春卡哈尔滨seo关键词
  • 花店网站建设构思百度推广运营专员
  • 网站建设模式电商关键词seo排名
  • 国家林业工程建设协会网站seopeixun com cn
  • 长乐住房和城乡建设局网站北京seo专业团队
  • ecs服务器如何做网站品牌推广百度seo
  • 星大建设集团招聘网站网站托管
  • 怎么做网站能快速赚钱网络营销公司好不好