-
2022-03-22 19:29:43
抽象类中可以有非抽象方法,想使用非抽象方法有两种解决方法
1.继承抽象方法,把这个类也声明为抽象类
2.继承抽象方法,实现抽象类中未完成的方法public abstract class D { abstract void 愚公移山();//没有主体,抽象的方法 抽象方法需要子类重写 public void eat(){ System.out.println("吃饭"); } public void sleep(){ System.out.println("睡觉"); } } 1.继承抽象方法,把这个类也声明为抽象类 public abstract class E extends D{ } 2.继承抽象方法,实现抽象类中未完成的方法 public class F extends E{ void 愚公移山() { } }
更多相关内容 -
C# 抽象类,抽象属性,抽象方法(实例讲解)
2020-08-28 12:13:21下面小编就为大家分享一篇C# 抽象类,抽象属性,抽象方法的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
C#中实现抽象类里建立静态方法
2020-09-04 09:36:02主要介绍了C#中实现抽象类里建立静态方法,需要的朋友可以参考下 -
C#抽象类和接口的区别分析
2021-01-01 00:46:39重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖。 二、接口: ... -
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形...
2020-12-21 23:23:20设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法 设计抽象类 就要使用abstract关键字,抽象类中的抽象方法要... -
c#中抽象类和接口的详细介绍
2021-01-20 07:05:20重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,... -
抽象类 包含抽象方法的类 抽象类
2021-01-17 17:25:18抽象类:包含抽象方法的类 抽象类 1、抽象类不能进行实例化 也就是:Shape shape = new Shape(); 2、在抽象类当中,可以拥有和普通类一样的数据成员和方法 public int age; public static int count; public void .../**
- 抽象类:包含抽象方法的类 抽象类
- 1、抽象类不能进行实例化 也就是:Shape shape = new Shape();
- 2、在抽象类当中,可以拥有和普通类一样的数据成员和方法
- public int age;
- public static int count;
- public void func() {
-
}
- 3、抽象类是可以被继承的,可以发生向上转型。。。。
- 4、当一个普通类继承了一个抽象类,那么注意,当前这个普通类,一定要
- 重写抽象类当中的抽象方法。
- 5、当普通类A继承了抽象类,且不想实现抽象类当中的抽象方法的时候
- 那么这个普通类可以被修改为抽象类A,此时就不需要进行实现了,当然你也可以实现。
- 如果一个普通类B,继承了这个抽象类A,此时就要实现这个抽象方法了
- 出来混 迟早要还的。
- 6、抽象方法不能是private修饰的,因为抽象方法就是用来被重写的
- 7、抽象类的出现 其实最大的意义就是为了被继承
*/
abstract class Shape {
public abstract void draw();
}
class Rect extends Shape {
@Override
public void draw() {
System.out.println(“♦”);
}
}
class Circle extends Shape {
@Override
public void draw() {
System.out.println(“○”);
}
}public class TestDemo {
public static void drawMap(Shape shape) {
shape.draw();
}
public static void main(String[] args) {
drawMap(new Rect());
drawMap(new Circle());
}
} -
011 抽象类必须要有抽象方法吗?
2021-02-28 14:53:53是抽象类可以没有抽象方法)解释:抽象方法:java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。抽象方法与...抽象类必须要有抽象方法吗?
答:不需要,
抽象类不一定有抽象方法;但是包含一个抽象方法的类一定是抽象类。(有抽象方法就是抽象类,是抽象类可以没有抽象方法)
解释:
抽象方法:
java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。
抽象方法与抽象类:
当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。abstract抽象类不能用new实例化对象,abstract方法只允许声明不能实现。如果一个类中含有abstract方法,那么这个类必须用abstract来修饰,当然abstract类也可以没有abstract方法。 一个抽象类里面没有一个抽象方法可用来禁止产生这种类的对象。
Java中的抽象类:
abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。
在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。
-
vehicle类_抽象类Vehicle_vehicle类_
2021-09-29 04:59:09设计一个抽象类Vehicle,由它派生出类Car和类Truck,类Car包含名称、颜色和载客数三个数据成员,类Truck包含名称、颜色和载重量三个数据成员。使用如下函数测试你的程序: -
JAVA抽象类和抽象方法(abstract)实例分析
2020-08-25 10:33:38主要介绍了JAVA抽象类和抽象方法(abstract),结合实例形式分析了java抽象类及抽象方法相关定义、使用技巧与操作注意事项,需要的朋友可以参考下 -
Java抽象类和抽象方法定义与用法实例详解
2020-08-25 10:34:21主要介绍了Java抽象类和抽象方法定义与用法,结合实例形式详细分析了Java抽象类和抽象方法相关原理、定义、使用方法及操作注意事项,需要的朋友可以参考下 -
抽象类必须要有抽象方法吗?
2019-07-22 14:36:512.抽象类可以没有抽象方法 3.一个类如果包含抽象方法,那么这个类必须是抽象类,否则编译就会报错。 4.最关键的一点就是如果一个类是抽象类,那么这个类是不能被实例化的。 如下: public abstract cl...答案是:不必须。
这个题目主要是考察对抽象类的理解。
说一下我个人的理解吧。
1.如果一个类使用了abstract关键字修饰,那么这个类就是一个抽象类。
2.抽象类可以没有抽象方法
3.一个类如果包含抽象方法,那么这个类必须是抽象类,否则编译就会报错。
4.最关键的一点就是如果一个类是抽象类,那么这个类是不能被实例化的。
如下:
public abstract class MQTest { }
现在user这个类就是一个抽象类,如果直接 使用该类创建新对象是行不通的,编译直接报错。
抽象类只能用其子类(该子类不能是抽象类)去创建新对象。
接下来我就用狗的例子来说明,先创建一个动物类(抽象类),然后创建一个狗类(抽象类),狗下面再分为金毛和二哈(非抽象类)。
动物类:
package com.xingli.abstractDemo; import lombok.Data; /** *@ClassName Animal *@Description 动物抽象类 *@Auther William *@Date 2019/7/22 14:11 *@Version 1.0 */ @Data public abstract class Animal { //定义一个抽象的“让动物叫”的方法 public abstract void say(); }
狗类:
package com.xingli.abstractDemo; /** *@ClassName Dog *@Description 狗类的抽象方法 *@Auther William *@Date 2019/7/22 14:13 *@Version 1.0 */ public abstract class Dog extends Animal{ //默认继承父类的say方法 }
金毛:
package com.xingli.abstractDemo; /** *@ClassName JINMAODog *@Description 金毛 *@Auther William *@Date 2019/7/22 14:16 *@Version 1.0 */ public class JINMAODog extends Dog{ //实现父类的抽象方法 @Override public void say() { System.out.println("金毛:我的名字叫金毛"); } }
二哈:
package com.xingli.abstractDemo; /** *@ClassName ERHADog *@Description 二哈 *@Auther William *@Date 2019/7/22 14:21 *@Version 1.0 */ public class ERHADog extends Dog{ @Override public void say() { System.out.println("二哈:我的名字叫二哈"); } }
直接父类创建新对象:结果报错
使用动物子类创建新对象,因为狗类也是抽象接口所以也报错
使用非抽象子类创建新对象(正确)
public class Test { public static void main(String[] args) { Animal erhaDog = new ERHADog(); Animal jinmaoDog = new JINMAODog(); erhaDog.say(); jinmaoDog.say(); } }
-
表面积和体积_抽象类Shape_shape类继承_
2021-10-02 01:13:28编写程序计算长方体、圆柱体和球的表面积和体积。要求先定义一个抽象类Shape如下:使用Shape类派生出长方体类、圆柱体类、球类,在这些类里分别实现继承的纯虚函数。使用如下代码测试运行。 -
Java抽象类中是否可以有构造方法
2021-03-23 10:40:52所以既然抽象类是不允许被实例化的,那么他的构造方法存在是否还有实际意义? 直接上例子 //抽象父类 abstract public class Shape { public Shape(){ System.out.println("这是Shape的构造方法"); } p -
java中抽象类、抽象方法、接口与实现接口实例详解
2020-08-28 22:17:08主要给大家介绍了关于java中抽象类、抽象方法、接口与实现接口的相关资料,文中通过示例代码将四者介绍的非常详细,并且简单介绍了抽象类和接口的区别,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。 -
java抽象类可以被继承吗?
2021-03-06 06:39:35抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏。java抽象类可以被继承吗?抽象类可以被继承。抽象类除了不... -
PHP中抽象类,接口功能、定义方法示例
2021-01-02 19:36:20本文实例讲述了PHP中抽象类,接口功能、定义方法。...它里面指定了抽象方法的名称和参数和成员常量,但不能包含任何的具体方法,变量. 个人认为php是弱类型语言,强调的是灵活性。与java相比php里的接口对类型 -
Java 抽象类定义与方法实例详解
2020-08-30 20:14:15主要介绍了java 抽象类与接口的区别介绍的相关资料,需要的朋友可以参考下... -
Java包含抽象方法的枚举类示例
2020-08-25 17:59:16主要介绍了Java包含抽象方法的枚举类,结合实例形式分析了Java包含抽象方法的枚举类实现方法与相关操作技巧,需要的朋友可以参考下 -
java抽象类继承抽象类和抽象方法
2021-03-01 08:03:39抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定... -
抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?
2020-10-18 22:02:42抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗? -
Java抽象方法和抽象类
2022-04-22 15:41:00如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去覆盖它,那么,可以把父类的方法声明为抽象方法。 class Person { // 定义抽象方法 public abstract void run(); } 把一个方法... -
接口和抽象类的区别是什么?抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?
2019-04-23 22:14:41•接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。 •接口中的实例变量默认是 final 类型的,而抽象类中则不一定。 •一个类可以实现多... -
11.抽象类必须要有抽象方法吗?
2020-07-26 22:07:01(有抽象方法就是抽象类,是抽象类可以没有抽象方法) 解释: 抽象方法: java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要... -
抽象类是不是必须要有抽象方法
2021-08-15 23:57:30在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之外,... -
java中的抽象类和抽象方法
2021-03-06 02:11:05使用关键字abstract定义的类叫做抽象类,在抽象类中可以包含抽象方法也可以不包含抽象方法,这意味着你在抽象类里边可以有具体的方法(有实现体)也可以有抽象方法(没有实现,没有括号,跟着分号)。抽象方法不能被实例... -
java中的抽象类和接口可以实例化吗?,它们可以有构造方法吗?(扩展:接口和抽象类的区别)
2021-04-27 16:57:04java中的抽象类和接口可以实例化吗?,它们可以有构造方法吗?(扩展:接口和抽象类的区别) -
抽象类可以不包括抽象方法 但是含有抽象方法的类必须是抽象类
2012-10-21 19:44:34抽象类可以不包括抽象方法 但是含有抽象方法的类必须是抽象类 抽象类是指不允许被实例化的类;抽象方法是没有方法体的方法。 1、抽象类可以不包括抽象方法,它反正不会去实例化,里面的方法是不是抽象的没有...