#3 楼@search 你可以这么理解,接口就相当于是一种认证,比如教师资格证,无论是谁,就算你是只狗,只要有了教师资格证(狗类实现了教师接口),就有了教师的行为,被认为是合格的教师。而类继承则比较强大些,假如 B 继承自 A,则 B 不仅有 A 的接口,还默认有 A 的行为。打个不恰当的比方,老鼠的儿子生下来就会打洞,不用去考打洞证。而抽象类则相当于哺乳动物这个概念,哺乳动物有特定的行为,但却是抽象的(狗、猪、羊都是活生生的东西,称之为具体的,而哺乳动物则是一个抽象的概念。)所有继承自哺乳动物这个抽象类的类,都有哺乳动物的行为(哺乳),因为哺乳这个行为相当程度上过程和原理是一样的,所以可以把这部分代码写在哺乳动物类的默认实现里。但是狗、猪、羊还各有各的不同,这些不同的细节哺乳动物没办法决定,只能写成抽象方法让具体子类去实现。这就是抽象类的作用。不知道这么说你是不是晕了。