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

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

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

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

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

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

1.用abstract来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。例如 :

抽象类:

abstract class Animal { //用abstract来定义一个Animal为抽象类}

抽象方法:

public abstract void enjoy(); //用abstract来定义一个抽象方法"enjoy"

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

抽象类不能被实例化。

抽象方法只需声明,而不需实现某些功能。如:

//抽象方法
public abstract void enjoy();//这个抽象方法不需要实现功能
//一般方法
public void enjoy() {
System.out.print("叫声"); //而一般的方法有必要实现某些功能
} 

例A:没抽象类的多态程序

class Person {
    public void f() {
        System.out.println("父类");
    }
}
class Students extends Person {
    public void f() {
        System.out.println("学生类");
    }
}
class Teacher extends Person {
    public void f() {
        System.out.println("教师类");
    }
}
public class Test3 {
    public static void main(String[] args) {
        Person s = new Students();
        Person t = new Teacher();
        s.f();
        t.f();
    }
}

例B:抽象类的多态程序

abstract class Person {
    public abstract void f();
}

class Students extends Person {
    public void f() {
        System.out.println("学生类");
    }
}
class Teacher extends Person {
    public void f() {
        System.out.println("教师类");
    }
}
public class Test3 {
    public static void main(String[] args) {
        Person s = new Students();
        Person t = new Teacher();
        s.f();
        t.f();
    }
}
时间: 2024-07-31 23:15:24

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

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

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

java中抽象类与接口的区别

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

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

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

java中抽象类和接口的区别?

简单来说,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法, 一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现. 还有,接口可以实现多重继承,而一个类只能继承一个超类, 但可以通过继承多个接口实现多重继承, 接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用. 接口和抽象类都是继承树的上层,他

Java中抽象类和接口的区别(abstract class VS interface)

前言:本文解决的问题 什么是抽象类 抽象类的应用场景 接口可以有方法实现吗 接口和抽象类的区别 1 什么是抽象类 在声明时含有关键字abstract就是抽象类,抽象类它可以看作具体类的一个模板,继承它的子类可以从抽象类中共享一些方法(可能是不完整的)和属性. A class which is declared with the abstract keyword is known as an abstract class in Java. It can have abstract and non-

java中抽象类和抽象方法到底什么关系?请举例说明!

抽象类和抽象方法什么关系?抽象类中可能有抽象方法,也可能没有抽象方法.(视频下载) (全部书籍)那位说,就跟没说一样,那抽象类和抽象方法都叫抽象,他们必定有关系,那关系是什么呢?如果一个类中有抽象方法,它必须得是抽象类. An abstract class may have no abstract method,such as the following class Car. 马  克- t  o --wi n: At this time,the only point and the meani

详细解析Java中抽象类和接口的区别

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意. 其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理.

[转]详细解析Java中抽象类和接口的区别

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解.对于设计意图的理解是否正确.合理

详解Java中抽象类与接口的区别

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理.本