抽象类和抽象方法的区别

抽象方法:在类中没有方法体的方法,就是抽象方法。

抽象类:含有抽象方法的类就叫抽象类。

抽象类中的抽象方法必须被实现!

如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!

抽象类中的普通方法,可以不必实现。

1 用abstract来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。例如 :
1
	abstract class Animal { //用abstract来定义一个Animal为抽象类
2
	}
3
	和
4
	public abstract void enjoy(); //用abstract来定义一个抽象方法"enjoy"

2 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

3 抽象类不能被实例化。

4 抽象方法只需声明,而不需实现某些功能。如:
1
	public abstract void enjoy();//这个抽象方法不需要实现功能
2

3
	public void enjoy() {
4
	System.out.print("叫声"); //而一般的方法有必要实现某些功能
5
	}

例A:没抽象类的多态程序
01
	class Person {
02
	    public void f() {
03
	        System.out.println("父类");
04
	    }
05
	}
06

07
	class Students extends Person {
08
	    public void f() {
09
	        System.out.println("学生类");
10
	    }
11
	}
12

13
	class Teacher extends Person {
14
	    public void f() {
15
	        System.out.println("教师类");
16
	    }
17
	}
18

19
	public class Test3 {
20
	    public static void main(String[] args) {
21
	        Person s = new Students();
22
	        Person t = new Teacher();
23
	        s.f();
24
	        t.f();
25
	    }
26
	}

例B:抽象类的多态程序
01
	abstract class Person {
02
	    public abstract void f();
03
	}
04

05
	class Students extends Person {
06
	    public void f() {
07
	        System.out.println("学生类");
08
	    }
09
	}
10

11
	class Teacher extends Person {
12
	    public void f() {
13
	        System.out.println("教师类");
14
	    }
15
	}
16

17
	public class Test3 {
18
	    public static void main(String[] args) {
19
	        Person s = new Students();
20
	        Person t = new Teacher();
21
	        s.f();
22
	        t.f();
23
	    }
24
	}
时间: 2024-10-31 08:44:18

抽象类和抽象方法的区别的相关文章

Java中抽象类和抽象方法的区别

抽象方法:在类中没有方法体的方法,就是抽象方法. 抽象类:含有抽象方法的类就叫抽象类. 抽象类中的抽象方法必须被实现! 如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类! 抽象类中的普通方法,可以不必实现. 1.用abstract来修饰一个类时,这个类叫做抽象类:用abstract来修饰一个方法时,该方法叫做抽象方法.例如 : 抽象类: abstract class Animal { //用abstract来定义一个Animal为抽象类} 抽象方法: public abstract

抽象类和抽象方法以及和接口区别

一.抽象类 抽象类.具体类是相对的,并非绝对的.抽象是一种概念性名词,具体是一种可见可触摸的现实对象.概念越小,则其抽象程度就越大,其外延也越大,反之亦然.简单说,比如"人"比"男人"抽象一点,而"生物"又比"人"更抽象一点,"物质"又比"生物"更抽象.       抽象的概念是由具体概念依其"共性"而产生的,把具体概念的诸多个性排出,集中描述其共性,就会产生一个抽象

【翻译】JAVA中抽象类和接口的区别

不知道有没有人翻译过了,这篇是挺简单的,权当复习一遍内容吧. 很多常见的面试问题如"抽象类和接口有什么区别","你在什么时候用抽象类什么时候用接口".所以在这篇文章里面,我们会讨论一下这个话题. 在开始讨论它们的区别之前,我们先看看它们的介绍. Abstract class 抽象类 抽象类被用来抽象出子类的共同特征.它是不能被实例化的,它只能被子类继承作为超类使用.抽象类被用作它的子类下的层次结构创建模板(Abstract classes are used to c

抽象类、抽象方法总结

首先区别抽象方法与虚方法:①从方法的声明来看:抽象方法只是方法的声明,没有方法体,关键字为abstract:虚方法则是有方法体的,关键子为virtual②从方法的声明位置来看:抽象方法只能声明在抽象类中:而虚方法则没有什么限制③从方法的使用来看:抽象方法必须在派生类中进行override,否则包含抽象方法的抽象类不能被实例化:而虚方法在派生类中则可以选择被重写,也可以选择不进行重写 抽象方法和虚方法的共同点:在使用的时候都是使用override关键字进行覆盖 抽象类普通类的区别与联系:①抽象类不

java中抽象类与接口的区别

转自: http://blog.csdn.net/tp7309/article/details/10452445 二者的区别快忘得差不多了,从别处看到这文章感觉写的不错,正好复习复习,也给大家分享一下. 抽象类 abstract class 包含抽象方法的类,叫抽象类.而抽象的概念就是抽象出共同属性:成员变量和方法.所以抽象类可以有private等多种权限的成员变量和非abstract的成员方法.当然抽象方法是一定要有的. 抽象类是用于单一继承的,不能实例化.而继承类一定要实现抽象方法,因为抽象

C#抽象类与接口的区别

一.抽象类:      抽象类是特殊的类,只是不能被实例化(可以用派生类实例化基类对象):除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法(当然它可以有普通方法),这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须重写(覆盖)它们. 二.接口:      接口包含了一组方法的原型,接口是引用类型的,类似于类,和抽象类的相似之处有三点:       1.不能实例化:(参见MSDN显式接口实现)       2.包含未实现的方法声明:       3.派生类必须实

Java中抽象类和接口的区别(读书笔记)

Java的抽象类和接口 抽象类和接口是两个容易混淆的概念,但有一句话能很好地将这两者区分开来,即抽象类是事物的抽象,而接口是行为的抽象.抽象类抽象出来的是一类事物,事物中包含了一些固有的属性和行为,而接口更多的是提供固有属性行为之外的延伸行为.打个比方,可以把动物看成为抽象类,类中有一些固有属性,如身高体重,还有一些共有行为,如吃饭和睡觉,所有的动物都遵循着这些属性和行为.除此之外,有些动物还能飞,但并不是所有的动物都具有飞行这种能力,此时飞行只是事物的延伸功能,相当于一个接口. 一.抽象类 抽

C#中抽象类和接口的区别

原文:C#中抽象类和接口的区别 大家在编程时都容易把抽象类和接口搞混,下面为大家从概念上讲解抽象类和接口的区别: 一.抽象类: 含有abstract修饰符的class即为抽象类,抽象类是特殊的类,只是不能被实例化,可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们.另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖.

关于Java抽象类和接口的区别与举例说明

声明:本文整理自 http://www.enet.com.cn/article/2007/1126/A20071126923475.shtml  中的文章 Java 中对于抽象类的定义有两种支持机制: 抽象类(abstract class)和接口(interface).我们来看看这两种机制的不同在哪里? 零.在此处需要明确的指出以下几点: 1.抽象类中抽象一词 限定的是不允许 有此类的分配实例到内存中 2.抽象方法:在方法定义(声明)时在其前面有修饰符abastract 3.普通方法:在方法定义