A. 求详解java中的接口与多态
多态是面向对象的核心之一,面向接口编程也是以面向对象编程为核心。
接口就是一种规范,我们平时编程要融入生活,比如说电脑的主板,上面有很多接口,插CPU得接口只要插上CPU就可以工作,不管它是哪个厂家生产的CPU,不管它内部如何工作,只要是CPU就可以用。好比你写个接口,里面有个fly方法,实现此接口的类都要实现这个方法,至于你如何飞是你的问题,不管你用翅膀飞,还是骑扫把飞,只要实现’fly飞‘就可以。
上面是让你将编程融入生活,说说编程的东西。
多态就是父类或者接口的引用指向子类的对象的情况。比如child类 extends Fahter类
那么可以Father f=new Child(); 如果一段代码可以用父类运行,当换成子类时,功能不变,那么就是多态。多态主要一定要记得两段话,编译时看引用,运行时看对象。这句话的意思是在IDE编译阶段,你用f点出来的方法(f.这里会提示Father类有得实例方法)都是Fahter类自己有得,而Child类里自己有得方法不会被自动提示出来。但是如果子类重写父类的方法了(重写:就是子类定义了一个与父类一模一样的方法,只是方法体不同),运行时还要看后面new出来的是谁,new Child();那么执行要执行Child类重写的方法体,这样做的好处是我可以在一个方法里写f.fly();(比如Father和Child都有fly方法)
public void test(Father f){
f.fly();
} 在这样的代码下 我里面代码不用动,但是可以让f.fly()效果不同,因为我传进去的子类对象可以不同,比如test(new Child1()); test(new Child2()); test(new Child3());然而这三个子类里面的fly都有自己的具体实现,这就是多态的表现,同一个引用调用同一个方法而表现出多种状态。接口换成父类是一样的。 再有不懂得地方追问。 呵呵
B. JAVA里多态和接口有什么区别
多态是面向对象编程的特征之一,而接口是一系列方法的声明,是一些方法特征的集合,有特定的语法和结构,这两者根本不是同一类型和层次上的概念。接口毫无疑问可以体现出多态性来,但是多态性未必一定要用接口,只要存在方法的重写、重载与动态连接即可体现多态性(如存在继承关系的类之间),所以,不存在“什么时候用接口什么时候用多态”的问题,程序里写的具体代码只可能是接口,只是这代码可能会体现出多态性而已,两者可以在不同的概念层次上并存,不存在冲突。
简而言之,你可以在程序里用代码定义一个接口,但是你不能定义一个多态,多态只是对你代码特征的一种描述,一种概念上的抽象和总结。
C. java接口类得实现以及多态性
没有java接口类,只有接口,类,接口对应的实现类;
A接口interface,B类class实现A接口implements,C类和D类都继承B类extends【这个就是多态】
D. java中如何正确使用接口 用接口如何正确的实现多态
这个东西很范哦 。。。。 总的来说就是你有一组性质相类似的类需要创建的时候,就可以用到接口来规定相同的方法, 在实际项目开发当中 例如MVC 模式开发 当中的 数据库的相应操作类,可以建接口 也可以用接口来做标示, 比如 序列化的接口就是一个空的接口标示。
重写接口的方法就是实现了 方法的多态啊, tostring 这个方法应该是重写的比较多的吧!
E. java接口有多态性,这个怎么理解
楼主可以这样理解,接口的出现是为了更好的实现多态,而多态的实现不一定需要依赖于接口
举个例子,多态肯定知道,一般有三种,接口的多态,类的多态,方法的多态
方法的多态就类似于我们方法的重载,这里不赘述
类的多态无非就是子类继承父类,并重写父类的方法,从而获得不同的实现
那么再来看接口,接口跟类基本是一样,实现接口并实现接口的方法。。不同的类实现接口可以有不同的方式从而表现不同的行为,就是接口的多态性啊。
F. JAVA中简述接口如何实现多态
接口里面 方法重载
就是方法名相同,参数(个数或类型)不同 如
public interface A
{
public String functionA();
public String functionA(Integer a);
public String functionA(char a,String b,Integer c);
}
G. Java中 接口是如何实现多态的特性的
概念
Java中多态是个很难理解的概念,但同时又是非常重要的概念,
Java三大特性(封装、继承、多态)之一,
我们从字面上理解,就是一种类型的多种状态,
一下通过卖小汽车的例子再次说明什么是多态,其中利用到了接口。
案例
//汽车接口
interface Car{
//要求 接口中有:汽车名称和售价
String getName();
int getPrice();
}
//宝马类
class BMW implements Car{
@Override
public String getName() {
// TODO Auto-generated method stub
//return null;
return "宝马";
}
@Override
public int getPrice() {
// TODO Auto-generated method stub
//return 0;
return 300000;
}
}
//奇瑞QQ
class CheryQQ implements Car{
@Override
public String getName() {
// TODO Auto-generated method stub
return "奇瑞QQ";
}
@Override
public int getPrice() {
// TODO Auto-generated method stub
return 40000;
}
}
//汽车出售店
class CarShop{
//收入
private int money=0;
//卖出一部汽车
public void sellCar(Car car){
System.out.println("车型:"+car.getName()+"价格:"+car.getPrice());
//增加卖出车售价的收入
money+=car.getPrice();
}
//售车总收入
public int getMoney(){
return money;
}
}
public class jieKouDemo {
public static void main(String[]args){
CarShop shop=new CarShop();
//卖出一辆宝马
shop.sellCar(new BMW());
//卖出一辆奇瑞QQ
shop.sellCar(new CheryQQ());
System.out.println("总收入:"+shop.getMoney());
}
结果:
H. java怎么用接口实现多态啊 急求
public boolean graate(CanObtainCredit coc){
if(coc.obtainCredit()) return true;
else return false;
}
这就是多态了。
多态实际上就是接口的不同实现。
I. Java中接口、接口的实现和多态的问题
没错,这就是多态。接口实现的多态,意味着接口UserService负责定义方法的名字,形参列表和返回值,而不考虑其具体实现,调用方UserBlh也不必了解findUser,saveOrUpdate这两方法由谁来实现,只需知道这userService指针指向的对象已经实现了这两个方法,那么调用方UserBlh只管调用就好。
“调用的是接口UserService中对应的方法,还是调用的是接口的实现UserServiceImpl中对应的方法”看来你可能不太清楚在实现层(语言编译的技术)上如何做的。
具体来说,1.方法实际上就是一段可执行的代码。而接口UserService其实就是定义了一个数据结构(其实就是虚函数表),而不定义方法本身(就是接口没有定义可执行的代码块)
2.接口UserService的子类UserServiceImpl在构造函数里要往这个表填一些东西,这个东西就是子类UserServiceImpl所定义的可执行代码块的入口地址。
3.当调用方UserBlh调用findUser方法,则通过查虚函数表的方式找到那个findUser方法的地址,进行调用。
给张图帮助说明从技术的角度如何实现多态。(假设还有一个类B也实现了接口UserService)
J. 关于java实现接口中蕴含的多态问题,请谁详细说下。
多态就是指同一个接口可以被多个对象实现继承。
就像中国有句古话,龙生九子各有不同是一个道理,爸爸一样,但是儿子还是有区别的。
2个对象同时实现了同一个接口,不表示2个对象会把接口里所有的方法都重写。
比如接口有2个方法,一个是fly(),另一个是run();但是你如果用bird实现这接口,那你就只能实现fly方法,如果是tiger实现接口,那你实现run方法就可以。如果是既可以飞又可以跑,那你2个方法都实现。
具体要怎么实现多态,得看你对象的需求了。