A. java接口 可以用实现类的构造方法吗
1 如果在子类中调用 ,那么先new 一个参数所在类型的对象a,即 A a = new A(),然后在子类中用super(a)就可以调用父类的带类参数构造方法。
2 如果在其他类中调用,那么也需要先new 一个参数所在类型的对象a,即 A a=new A();,然后new调用类的的时候把参数传进去就可以了,B b = new B(a)。
B. java 接口调用接口方法 实现的是哪个方法 是实现接口的类的方法吗 如果实现的类有多个呢
调用的不是接口也不是类的方法,而是对象的方法
举个例子List
a
=
new
ArrayList();
a.add(...);//调用的不是List接口的回方法,答也不是ArrayList类的方法,
而是new
ArrayList()所得到的对象的方法。而这个对象是ArrayList这个类的一个实例
C. JAVA框架如何实现调用接口的实现类的呢例实现httpsessionlistener接口类被调。
将HttpSessionListener接口的实现类配置在web.xml中,服务器启动时会自动调用
D. java接口对象如何调用实现类自己的方法
肯定是不能调用的. . 必须要在接口里面写下的这个方法的规范...
接口是用来定义规范的. ..
E. java 接口与实现类是怎么关联起来的
在你生命类的时候会调用初始化的构造函数,
具体实现为:接口 引用=new 实现类()内方式容
如:Studentservice studentservice=new Studentserviceimlp()
这样在时候接口studentservice时,使用的就是Studentserviceimlp类了。
F. java 类怎么调用接口实现类
直接写成Person p = new Student();即可 这是为了让买你代码的人看不到内部代码 怎么实专现的被隐藏了
1.Java的多态属性 就是多种变现形式 接口跟实现类都能完成同样的功能
2.隐藏内部代码块 人家只知道用p能调用Student的功能但是不知道你 Student类是怎么实现的
3.解耦合性 Java的接口多继承
G. JAVA 将接口的引用指向实现类的对象
有一个很简单的例子,java.util中的类ArrayList实现了接口List则生成ArrayList对象时可用以下语句.
List list=new ArrayList();
也就是说所有实现了接口List的类,都可以用List接口来声明对象类型,然后用实体类进行实例化.这表明了接口可以用来作为类型的表述.当然,生成的对象list只能调用接口List中提供的方法.
同样的操作也可以用在父类与子类身上,例如设A类是B类的父类
则创建B类对象的时候可以用以下语句
A b=new B();
这样的用法可以大大提高编程的灵活性.~
H. JAVA种用一个类去调用一个接口的多个实现类
如果接口的实现类有很多,那么你可以像下面这样,把所有实现类的类名在一个地方定回义。可以答是一个property文件, 可以是数据库,也可以直接写在代码里。也可以用工厂模式,也可以用代理,spring等等,方法很多,就不一一列举了。。。
public class Car {
public static void main(String[] args) throws Exception{
List<String> classList = new ArrayList<String>();
classList.add("Car1");
classList.add("Car2");
for(String className : classList) {
Carinterface car = (Carinterface) Class.forName(className).newInstance();
System.out.println(car.getName() + " : " + car.getPrice());
}
}
}
I. Java通过接口调用方法的时候,怎么知道调用的是哪个实现类里的方法
你说的是spring框架吧,调用方法是调用接口的方法,想知道最终怎么调用到实现类里的方法吧?是通过控制反转实现的,通过客户类运行上下文环境或专门组件负责实例化服务类,最终保证客户类的正常使用。
J. Java关于接口引用实现该接口类的对象
接口是抽象的,用来解耦最适合。而且可以发挥多态的优势。
给你举个例子
interface
A
{
void
run();
}
class
B
implements
A{
void
run()
{
System.out.println("我是B");
}
}
class
C
implements
A{
void
run()
{
System.out.println("我是C");
}
}
如果你这么写:
A
a
=
new
B();
a.run();//这里打印出“我是B”,如果前面new的是C这里就打印出“我是C”。
所以这个类就和B和C这2个类解耦,BC的改变都不会影响到你当前这个类。