A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周一川 中级黑马   /  2013-4-15 23:44  /  2217 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口是否可继承接口?抽象类是否可实现(implements)接口? 抽象类是否可
继承实体类(concrete class)

8 个回复

倒序浏览
我觉得这些问题都是可以通过编写代码来验证的,希望楼主可以勤动手写一写
我写了一下,上面的三种情况都是可以的,希望楼主试试
回复 使用道具 举报
接口可继承接口

抽象类可实现(implements)接口

抽象类可继承实体类(要有明确的构造方法)

接口的特点:
1.        接口是对外暴露的规则。
2.        接口是程序的功能扩展。
3.        接口可以用来多实现。
4.        类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
5.        接口与接口之间可以有继承关系。
回复 使用道具 举报
类可以是多实现,单继承
接口是可以多继承的
回复 使用道具 举报
上述的三种情况都是可以的并且接口可以实现多继承也就是一个接口可以继承多个接口
回复 使用道具 举报
接口可继承(extends)接口

抽象类可实现(implements)接口

抽象类可继承实体类(要有明确的构造方法)

interface C extends A, B {}是可以的.

一个类可以实现多个接口:
class D implements A,B,C{}

但是一个类只能继承一个类,不能继承多个类
class B extends A{}

在继承类的同时,也可以继承接口:
class E extends D implements A,B,C{}
这也正是选择用接口而不是抽象类的原因
可以!给你举个例子:
interface A{
        public String AUTHOR = "张三" ;       
        public void printA() ;       
}
interface B{
        public void printB() ;
}
interface C extends A,B{
        public void printC() ;
}
class X implements C{        // X类线继承B类
        public void printA(){
                System.out.println("A、Hello World!!!") ;
        }
        public void printB(){
                System.out.println("B、Hello World") ;
        }
        public void printC(){
                System.out.println("C、Hello World ") ;
        }
};

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
接口可以继承接口
抽象类可以实现接口
抽象类可以继承实体类
给你总结下接口与抽象类的知识点吧
1.抽象类
(1)抽象类的作用:
抽象类体现的就是一种模板的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体是会大致保留抽象类的行为方式。
(2)抽象方法与抽象类的规则
a.抽象类与抽象方法都是用abstract来修饰,抽象方法没有方法体,以分号结束 。
b.抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。
c.抽象类可以包含成员属性、方法(普通方法和抽象方法)、构造器、初始化块、内部类、枚举类,六种成分。抽象类的构造器不能用于创建实例、主要用于被子类调用。
d.含有抽象方法的类只能够定义成抽象类。
(3)使用时的注意事项
a.abstract不能够修饰成员变量与构造器。
b.static与abstract不能够同时修饰一个方法。
c.final与abstract不能够同时使用。
d.注意抽象方法与空方法的区别。
2.接口
(1)接口的作用:
接口体现的是一种规范和实现分离的设计哲学,充分利用接口可以极好地降低程序模块之间的耦合,从而提高系统的扩展性和维护性。例如:我们常用的工厂模式。
(2)特点
a.接口的修饰符可以是public与省略。
b.一个接口可以有多个直接父类,但是接口只能继承接口,不能继承类。
c.接口中可以包含成员属性(只能说常量),方法(抽象方法),内部类定义。
d.常量的修饰public static final与方法的修饰public abstract可以省略,系统自己加上。
e.实现接口方法时的修饰符只能够是public。
(3)接口与抽象类的相同点
a.接口与抽象类都不能够被实例化,都是用于被继承与实现。
b.接口和抽象类可以包含抽象方法,实现接口和继承抽象类的普通子类都必须实现这些抽象方法。
(4)接口与抽象类使用的差别
a.接口里只能包含抽象方法,不包含已经提供实现的方法;抽象方法可以包含普通方法。
b.接口里不能定义静态方法;抽象类里可以定义静态方法。
c.接口里只能够定义静态常量属性,不能够定义普通属性;抽象类里则既可以定义普通属性,也可以定义静态常量属性。
d.接口不包含构造器;抽象类里可以包含构造器,抽象类里的构造器不是用于创建对象,而让其子类调用这些构造器来完成属于抽象的初始化操作。
e.接口里不能包含初始化块,但是抽象类则可以完全包含初始化块。
f.一个类最多有一个直接父类,包括抽象类;但是一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承的不足。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
{:soso_e141:}我I一看不用回答了!都这么全面了!下手太快了你们!
回复 使用道具 举报
黄玉昆 黑马帝 2013-4-16 12:22:40
9#
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马