十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1.implements PCI是实现PCI 接口的意思;
创新互联公司-专业网站定制、快速模板网站建设、高性价比集宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式集宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖集宁地区。费用合理售后完善,十多年实体公司更值得信赖。
2.不是;这两个方法是必须写的,不能少;这两个方法来自接口中的,既然现实了PCI接口,就一定要实现接口中的所有方法
3.PCI nc= new NetworkCard(); 因为NetworkCard实现了PCI接口,PCI就类似是NetworkCard的父类,这个体现了面相对象编程中的多态;就好比你是一个男生,我可以说你是一个人吧,意思是一样的;
4.PCI nc = new PCI()这个是不能直接这样写的,因为PCI是接口,接口中没有构造方法,这个是new不出来对象的
接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
示例代码:
interface People{ //接口
void peopleList();
}
class Student implements People{ //接口实现类
public void peopleList(){ //实现接口方法
System.out.println("I'm a student.");
}
}
class Teacher implements People{ //接口实现类
public void peopleList(){ //实现接口方法
System.out.println("I'm a teacher.");
}
}
public class Example{
public static void main(String args[]){
People a; //声明接口变量
a=new Student(); //实例化,接口变量中存放对象的引用
a.peopleList(); //接口回调
a=new Teacher(); //实例化,接口变量中存放对象的引用
a.peopleList(); //接口回调
}
}
输出结果:
I’m a student.
I’m a teacher.
在java中,接口被看作是一种特殊的类。但是不能用new操作符创建接口的实例
它可以用来解决不是继承于同一个父类的两个类的多态实现。
public interface eatable
{
public void howToEat();
}
public class apple implements eatable
{
public void howToEat()
{
System.out.println("eat directly");
}
}
public class pig implements eatable
{
public void howToEat()
{
system.out.println("cooked to eat");
}
}
然后我们可以直接定义一个
eatable 的变量
例如eatable a = new apple()
a.howToEat();
a = new pig();
a.howToEat();
你就可以看到好处了
------------------------------------------------------------
新浪微博:java_learner
给你不一样的java资料更新
OK的,楼主,我运行过了,如下:
interface DriveControl {
void startEngine();
}
interface Repairable {
void repair();
}
public class Car implements DriveControl, Repairable {
String model;
public Car() {
System.out.println("Car init");
}
public Car(String model) {
this.model = model;
}
void printModel() {
System.out.println("The model of this car is" + this.model);
}
public void startEngine() {
System.out.println("Start engine");
}
public void repair() {
System.out.println("Car is repaired");
}
public static void main(String[] args) {
Car car = new Car();
DriveControl control = (DriveControl) car;
control.startEngine();
Repairable repairable = (Repairable) car;
repairable.repair();
}
}
运行结果:
Car init
Start engine
Car is repaired
附上一图,希望能够帮上你的忙。
通过附图,我们可以了解到 DY是接口,它被两个子类实现,分别是 softstudent, softschool。其中 softschool 还自定义了一个方法名叫 print,参数便是DY接口,所以能够对softstudent 进行输出。
String content 表示的是参数名叫content,它的类型是字符串,名字可以随便换,但不能是JAVA关键字,比如 java,while,for等等。
new 是构造的意思的,一般类都有默认的构造器,用于实例化类。
最后想说的话:
1, 在JAVA世界,一般类名标准都要求单词首字大写,比如softschool 应该写成 SoftSchool,这是业界内默认的约定。
2, 左大括号不像.net那样。
举个例子给你参考:
public class SoftSchool {
public void test(){
//...your codes
}
}
public class Printer {
public static void main(String[] args) {
SoftSchool softSchool = new SoftSchool();
softSchool.test();
}
}
//接口
public interface BankCard {
public void norm();
}
//工商银行实现类
public class ICBCBankCard implements BankCard {
@Override
public void norm() {
// TODO 银行规范
}
public void saveMoney(int money){
//TODO 执行存钱动作
}
public void transfer(String account,int money){
//TODO 执行转账 动作
}
}
//交通银行实现类
public class CommunicationsBankCard implements BankCard {
@Override
public void norm() {
// TODO 银行规范
}
public void saveMoney(int money){
//TODO 执行存钱动作
}
public void transfer(String account,int money){
//TODO 执行转账 动作
}
}
上面的例子只是申明了通用的规范,如果想让实现类都能实现存钱和转账功能,可以在接口里面声明这两个方法,写一个通用的实现类,实现这些方法,然后具体的子类继承该通用类,这样可以直接继承父类方法,如果不同的银行具体实现不同,可以复写父类中的两个方法。