ZKX's LAB

java 抽象类作为引用类型

2020-07-16知识15
在java中,什么时候用抽象类,什么情况下用接口??各自有什么好处,以及两个的对比?? 接口,只是定义方法名。子类去实现具体细节。抽象类,的抽象方法与接口方法一样要子类去实现,但抽象类可以有具体的方法体。比如做一个画面的功能。定义一下画图的接口,一个画的方法。这样,你可以有子类画矩形,画圆。但这样,你不能做一些共通的功能。如果是一个抽象类就好一些。定义一个画图的抽象,一个抽象的画的方法。一个清除的友好方法。这样你的子类都可以调清除方法。来清除画过的东西。 java中的抽象类里静态方法以及相关调用问题,请解答!为什么是这个结果? Father fa=new Child();fa.add();fa.update();这2个应该毫无疑问,都应该是子类的。但是Father类中有一个静态的方法delete,这个静态的方法在内存中只能有一份,不会出现2份,所以子类可以继承,但不可以重写。类初始化的时候,会先初始化父类,所以父类的delete方法先于子类初始化并存在于内存中,子类调用的时候会直接去内存调用父类已初始化的delete方法。准确的讲此时只是子类对父类静态方法的隐藏(hide),子类的静态方法完全体现不出多态,就像子类字段隐藏父类的字段一样,在利用引用访问对象的字段或静态方法时,是引用类型(type)决定了事实上访问的是哪个字段,而非当前引用实际代表的是哪个类。因此,子类静态方法不能覆盖父类静态方法。 详解java中的抽象类和接口的区别 抽象类: 1)抽象方法,只有行为的概念,没有具体的行为实现。使用:abstract 关键字修饰,并且没有方法体。2)包含抽象方法的类,就一定是抽象类。使用:abstract 关键字修饰,包含抽象方法。3)抽象类不能直接创建实例。可以定义引用变量。4)抽象类只能被继承,一个具体类继承一个抽象类,必须实现所有抽象方法。5)抽象方法和抽象类非常适合作为系统的分析和设计的工具。接口: 1 接口:全部的方法都是抽象方法,全部的属性都是常量。接口用来表示纯抽象概念,没有任何具体的方法和属性。2 不能实例化,可以定义变量。3 接口变量可以引用具体实现类的实例。4 接口只能被实现(继承),一个具体类实现接口,必须使用全部的抽象方法。5 接口之间可以继承。6 一个具体类可以实现多个接口,实现多继承现象,表示: 7 接口中的属性,默认是常量 public static final 8 接中的方法一定是:public abstract 9 实现一个接口,使用关键字implements,实现实际上是一种继承关系。接口和实现类是父子类型的关系 JAVA中调用一个抽象类的抽象方法时会怎样? 抽象类:动物 有方法 cry();具体类1:猫 extends 动物 实现方法cry(){“喵喵~”} 具体类2:狗 extends 动物 实现方法cry(){“旺旺~”} 动物 dog=new 狗();动物 cat=new 猫();cat.cry();结果是喵喵~叫 dog.cry();结虹是旺旺~叫由于dog是new 出来的是狗 而cat是new出来的猫,所以虽然大家都属于动物,但其实不是同一种动物。并且想让狗学猫叫,猫学狗叫是不可能的动物 dog=new 狗();其实相当于理解成以下两条语句 1。狗 dg=new 狗();2。动物 dog=(动物)dg;将dg的狗类型转化成了动物类型所以调用时当然只会调用狗的方法旺旺旺,而不会去调用其它动物的方法!所以问题的关键在于生成时是 new 狗还是new 猫!因为动物是不能被new出来的(抽象类不能实例化)所以我们就能分出执行的是哪个方法; Java中抽象类和接口的具体区别是什么? 卫婷Elisa 微信/QQ:54631453;Java幕后程序员~喵~ 谢邀,直接回答。接口在面向对象编程中占着很重要的地位,它是对于一种事物行为的抽象...Java学习 ? zhuanlan.zhihu.com JAVA中的接口到底是怎么回事?他和抽象类的区别? 我们用Hi交流一下吧?我或许能够帮助你。 java怎么引用抽象类? 抽象类是对数据的抽象,是不能实例化创建对象的,所以你这里new一个抽象类的对象就出错了你要重新定义一个类去继承抽象类。一般抽象类中有抽象方法的话,还得对所有的抽象方法都重写,然后去创建新的类才能引用 Java中抽象类和接口的区别 抽象类里面可以有非抽象方法 但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类... java中到底怎样用接口类和抽象类 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 如何在Java类中定义接口属性并如何使用接口的方法 摘要 一,接口基础知识 1,java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承.2,与接口相关的设计模式:1,定制服务模式 ...

#接口#抽象方法#抽象类

随机阅读

qrcode
访问手机版