关于java中接口的问题!
答案:5 悬赏:30
解决时间 2021-02-02 01:35
- 提问者网友:敏感魔鬼
- 2021-02-01 15:13
java中的接口到底起什么作用,在网上看了好多资料,还是没能弄明白!谁能简单的说一下,最后以一个简单的实例来说明,谢谢了!
最佳答案
- 二级知识专家网友:恕我颓废
- 2021-02-01 16:13
接口有点像完全没有任何方法被实现的抽象类
但实际上二者是有差别的
一个对象可以有多个接口的
你可以把抽象类和接口对比的学习一下
下面是我初学的时候写的代码
不要笑话啊
interface Karts1
{
String name = "☆雷霆PRO☆";
void outputname();
}
interface Karts2
{
int speed = 267;
void outputspeed();
}
interface Karts3
{
String appearance = "vigour";
void outputappearance();
}
class KartLeiTing implements Karts1,Karts2,Karts3
{
String name1;
int speed1;
String appearance1;
KartLeiTing(String m,int n,String p)
{
name1=m;
speed1=n;
appearance1=p;
}
public void outputname()
{
System.out.println("name is:"+name);
}
public void outputspeed()
{
System.out.println("speed is:"+(speed+10));
}
public void outputappearance()
{
System.out.println("appearance is:"+(appearance+" and powerful"));
}
public void output()
{
System.out.println("我最喜欢的车:"+name1+'\n'+"它的速度是:"+speed1+'\n'+"它的外观:"+appearance1);
}
}
public class InterfacePopKart
{
public static void main(String args[])
{
KartLeiTing KT=new KartLeiTing("雷霆PRO",278,"气势庞大 君临天下" );
KT.output();
System.out.println("The Kart's information is:");
KT.outputname();
KT.outputspeed();
KT.outputappearance();
}
}
但实际上二者是有差别的
一个对象可以有多个接口的
你可以把抽象类和接口对比的学习一下
下面是我初学的时候写的代码
不要笑话啊
interface Karts1
{
String name = "☆雷霆PRO☆";
void outputname();
}
interface Karts2
{
int speed = 267;
void outputspeed();
}
interface Karts3
{
String appearance = "vigour";
void outputappearance();
}
class KartLeiTing implements Karts1,Karts2,Karts3
{
String name1;
int speed1;
String appearance1;
KartLeiTing(String m,int n,String p)
{
name1=m;
speed1=n;
appearance1=p;
}
public void outputname()
{
System.out.println("name is:"+name);
}
public void outputspeed()
{
System.out.println("speed is:"+(speed+10));
}
public void outputappearance()
{
System.out.println("appearance is:"+(appearance+" and powerful"));
}
public void output()
{
System.out.println("我最喜欢的车:"+name1+'\n'+"它的速度是:"+speed1+'\n'+"它的外观:"+appearance1);
}
}
public class InterfacePopKart
{
public static void main(String args[])
{
KartLeiTing KT=new KartLeiTing("雷霆PRO",278,"气势庞大 君临天下" );
KT.output();
System.out.println("The Kart's information is:");
KT.outputname();
KT.outputspeed();
KT.outputappearance();
}
}
全部回答
- 1楼网友:兮沫♡晨曦
- 2021-02-01 20:08
弄不明白,就先别想这个问题了.
这个应该是给架构师用的,你如果没有设计过大一点的项目,是不会体会到借口的用处的.
像那些比较好的框架,ssh啊,到处都是借口的应用.
- 2楼网友:桃花别处起长歌
- 2021-02-01 18:29
简单的程序中有无无所谓
当你到了学习到后面就能体会到了
我原来也觉得没有用
现在才体会
比如spring学习的时候你就会更加体会他是对接口编程的..没有接口是不行的!
还有就是接口单独放在一个包中..这样查看比较方便./..
- 3楼网友:风格单纯
- 2021-02-01 18:20
定义一组规范,方便团队开发,因为必须重写接口里写的方法.下面的例子是以声卡和网卡实现card(相当于主板上的插槽)接口
public interface card{
public void work();
}
public class SoundCard implements card{
public void work(){
System.out.print("soundcard work");
}
}
public class NetCard implements card{
public void work(){
System.out.print("netcard work");
}
}
- 4楼网友:零负荷的放任
- 2021-02-01 17:09
同学,你需要理解的是实现、继承和多态的问题。
class a extends b{}
a为b的子类,a和b假如都有一个 void print()方法
那么
b test=new a();
我们可以看到,test引用的类型是b,但是它的实例是a。
因为a是b的子类,所以这个是可以实现的。
那么test.print()调用的是谁的方法呢?
答案是a的方法。
只有当a没有print方法的时候,才会从上一级(父类)里寻找这个print
接口的性质也是一样的
回到问题:
connection conn = drivermanager.getconnection(url,user,password);
在这个里面,虽然conn的类型是connection,但是它的实现是drivermanager.getconnection(url,user,password);的返回值。
既是说,实例是取自getconnnection方法里的。
如果你有源码,可以往里面看看。
当然,你也可以system.out.println(conn.getclass())。
来获取它的实例的类型,肯定不是connection,而是connection的实现类。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯