我是这样想的,本来继承的目的就是为了获取父类中的某些功能,这样在子类中就不用重新定义书写这些功能,提高了代码的复用性很方便,可是继承抽象类的时候,由于继承的方法中有的是抽象的方法没有具体实现方式,在子类中还得重新书写覆盖,那我为什么要去继承这个抽象类呢?感觉没有意义啊,继承也得再写,不继承也得再写。
继承除了可以复用已经实现的方法外,还有一个很重要的作用:多态!
举个例子,你有一个方法,需要根据传递参数的不同,而返回不同的结果:
Action(Bird bird){bird.move();} //结果是飞如果它们都继承自一个类Animal,那么这个方法只写一个就可以了:
Action(Animal animal){animal.move();} //根据多态,结果是子类的实现本回答被提问者和网友采纳java中抽象类的存在有什么意义?
java中抽象类更利于代码的维护和重用。抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。具体分析如下:1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更...
如何解读java抽象类的作用和意义?
抽象类在Java编程中扮演着核心角色,它们通过从具体类中进行抽象化,形成一种更通用的类型。抽象类的意义在于,能够为具体的实现类提供统一的规范和标准。具体来说,抽象类能够准确地模拟业务领域,提供一个高层次的描述,包含类型与功能。这使得开发者能以更抽象的概念来思考问题,从而提高代码的可读性和...
如何生动的解释为什么java中要用抽象类?
在Java中,抽象类的使用是为了在设计模式中实现代码的重用和抽象化。抽象类主要是用来将差异性的方法抽象化,由子类进行扩展实现;共同性的方法具体化,由所有子类继承实现。抽象类允许定义共同的属性和行为,然后由不同的子类根据需要进行特定的实现。抽象类的定义中使用了abstract关键字,表明这是一个抽象...
java中为什么要用抽象类和接口
从这里可以看出,抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类,如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为abstract方法,此时这个类也就成为abs...
java中为什么要引人abstract类和方法了?
java引入抽象类的意义:1,为子类提供一个公共的类型;2,封装子类中重复内容(成员变量和方法);3,定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。抽象方法:由abstract修饰的方法为抽象方法,抽象方法只有方法的定义,没有方法的实现。抽象类:一个类中如果包含抽象方法,个i类应该...
抽象类是什么
其次,在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为,为了绕过这个限制,必须使用委托,但是这会 增加一些复杂性,有时会造成很大的麻烦。 在抽象类中不能定义默认行为还存在另一个比较严重的问题,那就是可能会造成维护上的麻烦。因为如果后来想修改类的界面(...
JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处
把那些和“东西”差不多的类写成抽象的。而水杯一样的类就可以不是抽象的了。当然水杯也有几千块钱一个的和几块钱一个的。水杯也有子类,例如,我用的水杯都很高档,大多都是一次性的纸水杯。记住一点,面向对象不是来自于Java,面向对象就在你的生活中。而Java的面向对象是方便你解决复杂的问题。
在java中,什么是抽象类和抽象方法,创建有何作用
抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽...
Java中有哪些多态实现方式?
抽象类存在的意义:抽象类不能被实例化,只能被其他类继承继承抽象类的子类必须把抽象类中的所有抽象成员都重写(实现)(除非子类也是抽象类。)抽象类就是为了重写多态(代码重用)。抽象类中可以有实例成员也可以有抽象成员。3、接口就是一种规范,约定好遵守某种规范就可以写通用的代码。定义了一组具有...
java中的抽象类和接口该怎么理解 ?定义上有什么区别?通常分别有什么作用...
从某种意义上说,接口是一种特殊形式的抽象类,在java语言中抽象类表示的是一种继承关系,一个类只能继承继承一个抽象类,而一个类却可以实现多个接口。在许多情况下,接口确实可以代替抽象类,如果你不需要刻意表达属性上的继承的话。进一步理解,关于java引入抽象类、接口的目的,向高手请教得到的答复...