-
一个类实行了接口,也可以成为这个接口的子类的?10
一个类Super中 有实例变量的接口InterfaceA,InterfaceB 然后子类Son继承了这个类 相应的实例变量是实行了父类的接口 A,B ,这样也可以的?小弟写了下列这些类和接口:package designPatterns;
两个接口InterfaceA, InterfaceB:
public interface InterfaceA {
void methodA();
}
public interface InterfaceB {
void methodB();
}
两个类A,B分别实现此两个接口:
public class A implements InterfaceA {
public void methodA() {
System.out.println("A implements InterfaceA");}
}
public class B implements InterfaceB {
public void methodB() {System.out.println("B implements InterfaceB");}
}
父类Super中,两个接口作为实例变量
public class Super {
public InterfaceA a;
public InterfaceB b;
public void useMethodA() {
a.methodA();
}
public void useMethodB(){
b.methodB();
}
}
子类Son继承父类,(问题来乐!这时候public InterfaceA a = new A();可以成立的?new一个A的对象 然后直接可以赋给类型为InterfaceA的对象?)
public class Son extends Super {
public InterfaceA a = new A();
public InterfaceB b = new B();
}
写一个TestDrive, 编译成功,并正常调用了实现了接口的方法!
public class TestDrive {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Son s = new Son();
s.a.methodA();
s.b.methodB();
}
}
控制台输出:
A implements InterfaceA
B implements InterfaceB
也就是说!方法被成功调用了!
我的问题主要在子类的这里:
public InterfaceA a = new A();
public InterfaceB b = new B();
两个接口和A,B并没有继承关系,为什么可以这样定义的?
2011年8月29日 22:46
4个答案 按时间排序 按投票排序
-
采纳的答案
虽然没有继承关系,但是有实现关系啊,实现了接口,这样也可以的,继承和接口是有相似性的。这叫做父类(父接口)则引用指向了子类(实现类)的对象。这个也就是面对对象编程的特性之一。不懂的可以问我咯。
2011年8月29日 23:29
-
引用实现接口,同样是继承关系。
说继承也不是很准确,这么说吧,Interface的意思是说:
所有实现这个接口的类都应该长成这个接口的样子,
implements一个接口,或是extends一个类,描述的
都是is-a的关系,
class A implements InterfaceA 也就代表了
A是一个InterfaceA。2011年8月29日 23:31
相关推荐
Java --- 方法参数为接口(子类实现接口中重写后的方法流程图)
USB设备类及设备子类及接口采用的设备类协议
设计一个学生类Student和它的一个子类Undergraduate,要求如下: 1) Student类有name(姓名)、和age(年龄)属性,一个包含两个参数的构造方法,用于给name和age属性赋值,一个show()方法打印Student的属性信息 2) ...
通过animal类及其子类来联系继承以及虚拟类、接口,用来联系用
设计一个Shape接口和它的两个实现类Square和Circle,要求如下: 1)Shape接口中有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果 2)Square和Circle中实现了Shape接口的area()抽象...
实现一个图形类以及子类,其可以描述基本图形的属性及必要方法。
Java基础知识汇总之集合框架List、Map、Set接口及其子类综合对比
编写一个接口Shape类,Rectangle、Triangle、Square等三个类实现(implements)接口Shape,并通过实现Shape中的接口来实现具体功能。 编写两个接口Phone、GameMachine,MobilePhone类实现接口Phone和GameMachine中...
编写一个抽象类Shape,其中有抽象方法getArea()和getPerimeter() 在Shape类的基础上派生出Rectangle和Circle类,二者都实现了计算面积的方法getArea()和计算周长的方法getPerimeter(); 构造main函数,生成...
(8) 抽象类实现的具体方法默认为虚的,但实现接口的类中的接口方法却默认为非虚的,当然您也可以声明为虚的 (9) 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中...
设计一个名为Person的类和他的两个名为Student和Employee子类。Employee又有两个子类:教员类Faculty和职员类Staff。
定义一个接口,用于描述动物的生活习性,包含食性、捕食、分布区域、睡觉方式、群居方式等;接口里面包括属性和方法。 例如: interface IHabit { void CatchFood(); string food{get;set;} …… } 然后定义猫...
那么就可以将这个方法声明为abstract方法,此时这个类也就成为abstract类了。 包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样, 同样可以拥有成员变量和普通的成员方法。...
java代码-使用java,解决一个长方形类Rectangle,一个子类长方体类,计算周长,面积,体积的源代码 ——学习参考资料:仅用于个人学习使用!
接口类实际上就是一个规范子类的类,只不过这个类与别的类不太一样,接口(内部的方法)本身不实现,子类继承接口类,子类需要实现接口的功能,否则无法正常工作。那么作用也毋庸置疑,就是规范好子类的接口。 定义...
继承与接口含义,子类的继承性的访问控制,子类对象的构造过程,子类的内存分布,子类对象的成员初始化,成员变量的隐藏,方法的重载与方法的覆盖,this关键字。。。。。。
如果接口或者抽象类的子类不想实现则继续携程一个抽象方法 5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。 6.抽象类中的变量默认是 friendly 型,...
获取同一个程序集下一个类的所有子类,及类的相关信息,并且将这些类之间的层次关系以树状形式呈现出来
接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象...Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口)变量赋值。
4)类可以实现接口,一个类可以多实现接口 如: public class ClassName implements InterfaceA,InterfaceB{} 5)一个类如果实现接口必须重写父接口中所有的抽象方法,除非该类是抽象类 6)接口里不能有构造方法,不能...