接口
接口是用来解决java里面单根继承的缺陷,一个类里面可以有很多个接口,用关键字implements来连接且多个接口用逗号分隔如: public class Dog implements Pet ,animal{}
创建一个接口的代码是: public interface Pet{} //interface是关键字,把它与class(类)代替一下就是接口了
接口可以创建成员变量,但都是静态常量 static final 接口所有的方法都是public abstract
接口没有构造方法
接口与继承的 相同点:
1.子类必须实现接口的 抽象方法。 2.都不能 被实例化(因为没有意义) 3.都能包含 抽象方法
不同点:
1.抽象类可以有其他普通方法,但是接口只能有抽象方法。
2.一个类只能继承一个直接父类,但接口可以多个引用。
接口实际引用个人需要注意:如Pet是接口 Dog、Cat是引用接口的类,我们需要根据灵活运用对象实例化可以这样写 Pet pet; 这代表着用接口Pet来引用所有子类对象,pet就可以使用接口需要实现的方法了。后面只需在实现类里面实例化Dog或者Cat的对象,把该对象通过set的方法赋值,那么程序就比较灵活了。如下面的部分代码:
public class Computer { //计算机组装方法类
CPU c;
HardPan hp;
InternalMemory im;
public CPU getC() {
return c;
}
public void setC(CPU c) {
this.c = c;
}
public HardPan getHp() {
return hp;
}
public void setHp(HardPan hp) {
this.hp = hp;
}
public InternalMemory getIm() {
return im;
}
public void setIm(InternalMemory im) {
this.im = im;
}
public void zuZhuang(){
System.out.println("计算机的信息如下:");
System.out.println("CPU的品牌是:"+ c.type()+",主频是:"+ c.num()+"Hz"); //这里引用的是接口实现类的方法
System.out.println("硬盘容量是:"+ hp.HPspace()+"GB");
System.out.println("内存容量是:"+ im.IMspace()+"G");
}
}
接口是用来解决java里面单根继承的缺陷,一个类里面可以有很多个接口,用关键字implements来连接且多个接口用逗号分隔如: public class Dog implements Pet ,animal{}
创建一个接口的代码是: public interface Pet{} //interface是关键字,把它与class(类)代替一下就是接口了
接口可以创建成员变量,但都是静态常量 static final 接口所有的方法都是public abstract
接口没有构造方法
接口与继承的 相同点:
1.子类必须实现接口的 抽象方法。 2.都不能 被实例化(因为没有意义) 3.都能包含 抽象方法
不同点:
1.抽象类可以有其他普通方法,但是接口只能有抽象方法。
2.一个类只能继承一个直接父类,但接口可以多个引用。
接口实际引用个人需要注意:如Pet是接口 Dog、Cat是引用接口的类,我们需要根据灵活运用对象实例化可以这样写 Pet pet; 这代表着用接口Pet来引用所有子类对象,pet就可以使用接口需要实现的方法了。后面只需在实现类里面实例化Dog或者Cat的对象,把该对象通过set的方法赋值,那么程序就比较灵活了。如下面的部分代码:
public class Computer { //计算机组装方法类
CPU c;
HardPan hp;
InternalMemory im;
public CPU getC() {
return c;
}
public void setC(CPU c) {
this.c = c;
}
public HardPan getHp() {
return hp;
}
public void setHp(HardPan hp) {
this.hp = hp;
}
public InternalMemory getIm() {
return im;
}
public void setIm(InternalMemory im) {
this.im = im;
}
public void zuZhuang(){
System.out.println("计算机的信息如下:");
System.out.println("CPU的品牌是:"+ c.type()+",主频是:"+ c.num()+"Hz"); //这里引用的是接口实现类的方法
System.out.println("硬盘容量是:"+ hp.HPspace()+"GB");
System.out.println("内存容量是:"+ im.IMspace()+"G");
}
}
*******************************************************分割线**************************************************************
public class Text { //实现测试类
public static void main(String[] args) {
Computer cp=new Computer();
CPU c1=new AMD();
cp.setC(c1); //通过实例化分割线上的类,调出set的方法,再通过接口实例化子类对象c1。c1就代表着new AMD;
HardPan h1=new XiBuDisk();
cp.setHp(h1);
InternalMemory i1=new KingSton();
cp.setIm(i1);
cp.zuZhuang();
}
}