-
2020-07-03 20:57:37
java中抽象类可以有非抽象方法、抽象方法
但是如果这个类有抽象方法那么它一定是抽象类package com.d; public abstract class Vehicle { public abstract String NoOfWheels(); public String No(){ System.out.println("抽象类的非抽象方法"); return "抽象类的非抽象方法"; } }
更多相关内容 -
抽象类中是否一定要有抽象方法?
2020-06-11 09:20:14抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接...抽象类可以没有抽象方法,也可以包含非抽象方法,但有抽象方法的类一定是抽象类。 ...抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。
如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过。抽象类可以没有抽象方法,甚至可以和普通类一样含有构造方法。当你要求不能创建某个类的实例,只能通过其他类继承这个类来使用时,就可以定义为抽象类。
抽象类中可以没有抽象方法,也可以包含非抽象方法,但有抽象方法的类一定是抽象类。
-
Java中抽象类和接口中有构造方法吗?
2021-03-08 05:52:39它们的语法区别:1)接口不能有构造方法,抽象类可以有。2)接口不能有方法体,抽象类可以有。3)接口不能有静态方法,抽象类可以有。4)在接口中凡是变量必须是public static final,而在抽象类中没有要求。忽然有此...以举例的方式说到如何区分抽象类和接口,这里我们从Java语法谈起,使我们更加了解这两者的内在区别。它们的语法区别:
1)接口不能有构造方法,抽象类可以有。
2)接口不能有方法体,抽象类可以有。
3)接口不能有静态方法,抽象类可以有。
4)在接口中凡是变量必须是public static final,而在抽象类中没有要求。
忽然有此一文,是因为同学疑惑道:抽象类居然还有构造方法,又不能直接用来new。我的解释是平时在抽象类中对于构造方法的存在,没有什么印象,是因为IDE默认为你生成了一个无参构造方法,也可以显式地写出构造方法,这个构造方法,是用来被子类调用的,因为任何子类都必须调用从Object开始的所有父亲的构造方法,才算完成初始化工作。那么我引申一下,问他们,接口有构造方法吗?他们的理解,抽象可以有,为什么接口不可以有?!那么在接口里写入构造方法时,编译器提示:Interfaces cannot have constructors。这又何解?
从语法的角度来说,抽象类必须有构造方法,而接口严禁有构造方法,这本身也说明了它们性质的不同。抽象类是一个类,别的类是用关键字 extends 来继承下来,并扩展的,有非常强的is-a的关系,这种关系一般来说符合里氏代换原则。而接口,是被其他类用关键字 implements 来实现接口定义的方法的。如果没什么区别,何必整出两个不同的关键字。 接口只是定义功能和行为规范,如果一个类实现了一个接口,那么这个类必须遵守这个接口的方法约定,但没有is-a的关系。把墙壁上的“小学生行为规范”想象成一个接口,那么是小学生必须遵守这个约定,但小学生不是“行为规范”。
构造方法是用来在对象初始化前对对象进行一些预处理的,提供了实例化一个具体东西的入口。接口只是声明而已,不一定要进行什么初始化,就算要进行初始化,也可以到实现接口的那一些类里面去初始化。接口只是用来表述动作,表述规范来的,可以new一台computer,但我们无法new一个IDE、SATA、PCI、PS-2。因此,接口要构造方法何用?接口是一种规范,被调用时,主要关注的是里边的方法,而方法是不需要初始化的,类可以实现多个接口,若多个接口都有自己的构造器,则不好决定构造器的调用次序,构造器是属于类自己的,不能继承,因为是纯虚的,接口不需要构造方法。而抽象类是具体类的祖先,即使是石器时代,也总要干些初始化的工作,抽象类虽然是不能直接实例化,但实例化子类的时候,就会初始化父类,不管父类是不是抽象类都,都会调用父类的构造方法,初始化一个类,先初始化父类,有没有说初始化接口。
1)Java中抽象类和接口中有构造方法吗?
在接口里写入构造方法时,编译器提示:Interfaces cannot have constructors。
A. 构造方法用于初始化成员变量,但是接口成员变量是常量,无需修改。接口是一种规范,被调用时,主要关注的是里边的方法,而方法是不需要初始化的,
B. 类可以实现多个接口,若多个接口都有自己的构造器,则不好决定构造器链的调用次序
C. 构造器是属于类自己的,不能继承。因为是纯虚的,接口不需要构造器。
在抽象类中可以有构造方法,只是不能直接创建抽象类的实例对象,但实例化子类的时候,就会初始化父类,不管父类是不是抽象类都会调用父类的构造方法,初始化一个类,先初始化父类。
A.方法名与类名相同;
B.没有返回类型(例如return、void等);
C.不能被static、final、native、abstract和synchronized修饰,不能被子类继承。
D.父类的构造方法不能被子类调用,可以通过super语句调用父类的构造方法。
E.构造方法可以重载,以参数的个数,类型,顺序,分为空参构造方法和有参构造方法。
注:
抽象类中不一定有抽象方法,抽象方法一定存在于抽象类中。
继承抽象类的可以是普通类,但必须重写抽象类中的所有抽象方法,也可以是抽象类,无需重写抽象类中的所有抽象方法。
注:
可以说是一种特殊的抽象类,里面的方法全是抽象方法。
子类实现接口必须对接口中的方法全部重写。
1)接口不能有构造方法,抽象类可以有。
2)接口不能有方法体,抽象类可以有。
3)接口不能有静态方法,抽象类可以有。
4)在接口中凡是变量必须是public static final,而在抽象类中没有要求。
-
抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?
2020-10-18 22:02:42抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?微信搜索《Java鱼仔》,每天一个知识点不错过
(一)每天一个知识点
抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?
(二)结论
抽象类不必须有抽象方法,但如果一个类包含抽象方法,则该类必须是抽象类。
抽象类不能用final修饰,因为抽象类必须被继承,而被final修饰的类不能被继承。
(三)再多学一点
虽然几乎每个程序员都知道抽象类,但是实际开发中抽象类对大多数人来说就只是一个概念,用到的机会很少。理由也很简单,抽象类是抽取共性需求而来的,即使没有抽象类,对业务的实现也没有影响。但是如果合理应用抽象类,能增强代码的重用性,更加有效地解决复杂需求。
继续回到题目:抽象类必须要有抽象方法吗?
当然不必须有,甚至于一个抽象类可以没有任何一个抽象方法,这个类除了不能被实例化之外,和普通的类几乎没有任何区别。
但是如果一个抽象类中有抽象方法,那么他的子类必须要实现抽象方法。
第二个问题:抽象类可以使用final修饰吗?
当然不可以,通过理解抽象类的作用我们就发现了,抽象类必须要被继承,如果用final修饰抽象类,这个抽象类就无法被继承,自然就无法使用了。
-
011 抽象类必须要有抽象方法吗?
2021-02-28 14:53:53(有抽象方法就是抽象类,是抽象类可以没有抽象方法)解释:抽象方法:java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不... -
抽象方法必须在抽象类中吗
2021-03-11 10:44:32抽象方法必须在抽象类中吗2020-07-01 15:01:18文/叶丹1、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。2、Final类中的属性和方法都必须被final修饰符修饰。3、最终类不能派生子类,最终方法不能被... -
Java抽象类中是否可以有构造方法
2021-03-23 10:40:52无论是无参构造方法,还是有参构造方法都可以正常存在 之所以产生这个疑问,是因为Java抽象类本身的要求抽象类是不能被实例化的,抽象类只能作为其他类的父类,或者通过向上转型指向其子类。所以既然抽象类是不允许... -
抽象类必须要有抽象方法吗?
2019-07-22 14:36:512.抽象类可以没有抽象方法 3.一个类如果包含抽象方法,那么这个类必须是抽象类,否则编译就会报错。 4.最关键的一点就是如果一个类是抽象类,那么这个类是不能被实例化的。 如下: public abstract cl... -
抽象类里面可以有非抽象方法
2013-01-06 16:37:23抽象类里面可以有非抽象方法 但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况... -
抽象类中的非抽象方法
2019-12-11 14:56:16当多个子类继承同一个抽象类的时候,有些共同的属性,不需要子类特别实现的可以定义为同一个非抽象方法,使用的时候子类直接调用即可。 比如抽象父类内部有个单例的非静态的非抽象方法c,有A,B两个子类都继承该类,... -
如何调用抽象类中的非抽象方法
2020-10-18 15:40:28如何调用抽象类中的非抽象方法 1.抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过... -
在抽象类中可以没有抽象方法_是否可以在最终课程中使用抽象方法?
2020-06-28 21:45:52在抽象类中可以没有抽象方法 这是最近在Java开发人员工作面试的电话面试中向我的一位读者提出的有趣的Java核心问题之一。 即使他知道你 无法用Java将抽象类定型为final ,他对方法的措辞感到困惑。 答案很简单,不... -
Java接口和抽象类的区别?(抽象类中可以定义变量) | 学步园
2021-03-16 10:48:07简单来说,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法... -
接口能否继承接口?抽象类能否实现接口?抽象类能否继承具体类?抽象类中能否有静态的main方法?
2020-12-02 13:38:45接口可以继承接口。 抽象类并不能继承接口,但可以实现...抽象类可以有静态的 main 方法。抽象类在面向对象中是被用来描述现实中的抽象事物, 抽象类没有对象概念所以不能被实例化. 但可以定义属性和方法, 其中属性方. -
java抽象类和抽象方法
2021-03-07 00:02:17一、什么是抽象类和抽象方法没有具体功能的实现,通过子类继承后重写方法来实现一定约束的类称之为抽象类,抽象类必须被abstract修饰。抽象方法就是只有方法声明,没有方法体的方法。抽象类的使用一般通过继承来实现... -
java抽象类有构造方法吗?
2020-05-27 21:50:09定义抽象类 格式 : abstract class 类名{} 举例 : 抽象类中的 方法 抽象方法 abstract void eat();...抽象类中,有构造方法,但是有不能new,那么构造方法干嘛的呢? 给子类用的!!! 抽象类,一样可以使用多态来创建子 -
关于抽象类中的抽象方法和非抽象方法的问题
2019-03-20 11:43:45抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的...在抽象类中的成员方法可以包括一般方法和抽象方法。抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类... -
关于那么抽象类中的非抽象方法
2019-02-28 19:57:35关于抽象类的问题,就是 抽象类中的非抽象方法不能被继承,但是抽象类存在的意义不就是被继承吗?那么抽象类中的非抽象方法存在的意义是什么?在抽象类中打出非抽象方法的时候并不会报错的。代码如下: public ... -
java抽象类可以被继承吗?
2021-03-06 06:39:35Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行... -
抽象类是不是必须要有抽象方法
2021-08-15 23:57:30在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之外,... -
继承了抽象类的子类需要把抽象类中的方法重写一遍吗?
2018-10-31 21:39:05抽象类中的非抽象方法不用重写,其他必须重写,接口的方法必须重写; 接口和抽象类中只有方法名,没有定义的,如果你不定义 也就是空方法,接口就是为了弥补java不能多重继承,接口针对的是对象而不是实现。实现的... -
C#中抽象类与抽象方法的详解
2020-06-17 17:41:11抽象类的含义是什么? 抽象类怎么创建? 抽象类的规则有哪些? 抽象方法? 抽象类被运用的意义是什么? -
11.抽象类必须要有抽象方法吗?
2020-07-26 22:07:01(有抽象方法就是抽象类,是抽象类可以没有抽象方法) 解释: 抽象方法: java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要... -
如何调用抽象类中的抽象方法?以及如何调用接口中的抽象方法?
2021-10-13 12:08:00目录1. 如何调用抽象类中的抽象方法?2. 如何调用接口中的抽象方法? 1. 如何调用抽象类中的抽象方法? 2. 如何调用接口中的抽象方法? -
Java 抽象类中构造方法的作用?如何理解?
2021-02-12 15:25:38因为抽象类不能实现实例但是一旦一个普通类继承了抽象类 便也可以在构造函数中调用其抽象类的构造函数也可以使用其方法可以这么理解吧 抽象类就是一个不能实例化的不同类不过如果方法加了abstract那么就必须在子类... -
面试题系列之接口是否可继承接口?抽象类是否可实现(implements)接口?...抽象类中是否可以有静态的main方法?
2020-05-20 18:33:06抽象类中是否可以有静态的main方法? 上面这个题目我们来慢慢的剖析一下。先从基本的概念说起。 一、接口 官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,... -
C#中的抽象类、抽象属性、抽象方法
2020-06-10 00:51:31前言:本博文讲述了C#面向对象中的抽象类,通过本博文的阅读,读者可以掌握C#抽象类的概念、应用、好处以及一些特性。 文章目录一、抽象类概念二、示例讲解三、抽象类的作用四、使用抽象类的好处五、抽象类总结 一、...