关于JAVA抽象类继承的一个问题

抽象类是含有纯虚函数的类,抽象类不能实例化对象。但是,JAVA里面继承抽象类可以只重写里面的一个方法,而没有重写所有的函数,这样是不是还存在一些纯虚函数,那这样这个继承类也是抽象类,但为什么这个继承成类可以定义对象? 刚自学JAVA,有一些问题不明白,没有老师可以问,可能对你们来说很简单,但希望能给我解释一下,谢谢。

第1个回答  2013-08-16
继承类必须实现抽象父类的全部抽象方法,才能实例化。否则,此继承类还是抽象类,只能由别的类实现其抽象方法才能实例化。追问

对啊,但是为什么没有全部实现抽象类的方法也可以定义对象,比如A类继承类Thread类,在A类中只重写了run方法,没有对从Thread继承过来的方法全部重写,但可以用A类直接定义对象,这是怎么回事

追答

抽象类和重写是2个概念。
Thread类:public class Thread implements Runnable {}已经是一个普通的类,不是抽象类了。
重写:是发生在继承中父类和子类之间。子类可以重写父类方法,也可以不重写,甚至可以增加父类中没有的方法。已达到扩张的目的。实现代码重用。

第2个回答  2013-08-16
任何含有抽象方法的类都必须是抽象类!子类如果没有完全实现(哪怕只有一个没有实现)父类的抽象方法,那么子类也要声明为抽象类(这个子类也不能new 出来对象)。
第3个回答  2013-08-16
有抽象方法 或者 abstract 修饰的类 是抽象类。
Java中只有被final 修饰的方法不能被override,其他的没有不能被override的限制。
抽象类的子类可以不override父类的抽象方法,这时子类也是一个抽象类。

抽象类只是不能被直接实例化,不要求一定要有抽象方法。本回答被提问者和网友采纳
第4个回答  2013-08-16
没有完全覆盖抽象类的方法也能实例化?那岂不是屌爆了。

java继承抽象类和接口问题
1.抽象类,不能实例化,也就是不能new,也就是不能创始对象。你可以这么理解:抽象,就是模糊的概念,相当于人们说的经常说的概念车之类的,为什么叫概念车,是因为只有个大概的模型,很多技术(在java里我们称之为方法)没有实现,所以不能造出车子(java中我们就是不能new啦)。当然只有解决所以技...

JAVA抽象类、接口继承的疑惑
抽象类b实现接口a,他可能没有完全实现a的方法。b可以有自己的新方法。c类继承接口a,他可以获得a里面所有的抽象方法,常量属性,内部类,枚举等等。d继承b同时实现c,就是吧上面两个情况综合一下,如果b实现a的某方法,那么d中调用的就是b实现的这个,如果b中没实现a的方法,d中也可以访问a的这个...

java中抽象类可以继承实体类吗
抽象类可以继承实体类,因为抽象类中不仅可以有抽象方法,也可以有非抽象方法,抽象类继承了实体类则即包括自己的抽象方法也包括了继承来的非抽象方法

抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承.但是...
A选项,对。java中类之间只能够实现单继承,即就是说一个类只能有一个父类,但允许多层继承,即就是一个类有一个父类,该父类还可以有自己的一个父类。举个例子:假如A能够继承类B和C,但当B,C中有相同的方法时,让A来调用,那么,A到底调用的父类中谁的方法呢?所以,java中类只能够实现...

java抽象类 一定能够被继承?
1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同。2)当父类已有实际功能的方法时,该方法在子类中可以不必实现,直接引用的方法,子类也可以重写该父类的方法(继承的概念)。3...

...前提是实体类必须有明确的构造函数。 这句话是什么意思?求JAVA...
2.既然抽象类一定是某一个类的父类,所以,这个抽象类一定要有构造函数!因为在子类的构造函数中不管显式,还是隐式,都必须使用到super语句。这样,抽象类的子类才能成功实例化。3.抽象类也有构造函数,只是,这个构造函数是给子类提供的。所以如果抽象类继承其他类,那么抽象类的构造函数也会使用super...

java继承抽象类与普通类有什么区别?
普通类:1、普通类中不能有抽象方法。 2、如果一个普通类实现了一个抽象接口或者抽象类,那么意味着必须重写抽象方法。 一、继承(extends) 继承是对现实生活中的"分类"概念的一种模拟。 狮子拥有动物的一切基本特性,但同时又拥有自己的独特的特性,这就是"继承"关系的重要特性:通常简称为"IS_A"关系,UML类图可以...

请问java中抽象类能不能继承抽象类?能了就举例说明谢谢。
能,如果你写了一个类继承了某个抽象类,而你又没有重写其所有的抽象方法,那么这个类也只能声明为抽象类。如果重写了就如第三个类,不是抽象的了。Abstract class A{ public void afunction();} Abstract class B extends A{ } class B extends A{ public void afunction(){};} ...

请问Java中抽象类中的抽象方法是否一定要被继承类实现?
当父类的抽象类中有抽象方法时,继承的子类有两种选择,第一:定义子类是抽象类,就不需要实现抽象方法;第二:实现所有的抽象方法,不需要定义子类为抽象类;当父类的抽象类中没有抽象方法时,子类直接继承不用做任何操作。

java 中普通类继承,抽象类继承,接口类继承,子类一定要重写父类中的方 ...
1. 普通类继承,并非一定要重写父类方法。2. 抽象类继承,如果子类也是一个抽象类,并不要求一定重写父类方法。如果子类不是抽象类,则要求子类一定要实现父类中的抽象方法。3. 接口类继承。如果是一个子接口,可以扩展父接口的方法;如果是一个子抽象类,可以部分或全部实现父接口的方法;如果子类不...

相似回答