三个错:
成都创新互联是一家专业提供彭州企业网站建设,专注与成都网站设计、网站制作、外贸营销网站建设、H5页面制作、小程序制作等业务。10年已为彭州众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
1.Chicken 类里的howtoeat方法改howtoEat;
2.Apple类和Orange 放到Fruit 类外面。
3。Chicken 类的构造方法需要给重量参数,因为你只定义了一个构造方法。
我调试的没问题,改后代码:
interface Edible{
public String howtoEat();
}
class Animal{
}
class Chicken extends Animal implements Edible,Comparable{
int weight;
public Chicken(int weight){
this.weight=weight;
}
public String howtoEat(){
return "fry it";
}
public int compareTo(Object o){
return weight-((Chicken)o).weight;
}
}
class Tiger extends Animal{
}
abstract class Fruit implements Edible
{}
class Apple extends Fruit {
public String howtoEat(){
return "Make apple cider";
}
class Orange extends Fruit{
public String howtoEat(){
return "Make orange juice";
}
}
}
public class Test{
public static void main(String[] args){
Object[] objects={new Tiger(),new Chicken(10),new Apple()};
for(int i=0;iobjects.length;i++){
showObject(objects[i]);
}
}
public static void showObject(Object object){
if(object instanceof Edible)
System.out.println(((Edible)object).howtoEat());
}
}
//接口
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 执行转账 动作
}
}
上面的例子只是申明了通用的规范,如果想让实现类都能实现存钱和转账功能,可以在接口里面声明这两个方法,写一个通用的实现类,实现这些方法,然后具体的子类继承该通用类,这样可以直接继承父类方法,如果不同的银行具体实现不同,可以复写父类中的两个方法。
//Muitiplication接口
public interface Muitiplication{
double mult(double a, double b);
}
//MuitiplicationImpl实现类
public class MuitiplicationImpl implements Muitiplication{
public double mult(double a, double b){
return a * b;
}
}
//MuitiplicationImpls实现类
public class MuitiplicationImpls implements Muitiplication{
public double mult(double a, double b){
return a + b;
}
}
public static void main(args[]){
MuitiplicationImpl m = new MuitiplicationImpl();
System.out.println(m.mult(1.001,1.001));
MuitiplicationImpls ms = new MuitiplicationImpls();
System.out.println(ms.mult(1.001,1.001));
}
1.implements PCI是实现PCI 接口的意思;
2.不是;这两个方法是必须写的,不能少;这两个方法来自接口中的,既然现实了PCI接口,就一定要实现接口中的所有方法
3.PCI nc= new NetworkCard(); 因为NetworkCard实现了PCI接口,PCI就类似是NetworkCard的父类,这个体现了面相对象编程中的多态;就好比你是一个男生,我可以说你是一个人吧,意思是一样的;
4.PCI nc = new PCI()这个是不能直接这样写的,因为PCI是接口,接口中没有构造方法,这个是new不出来对象的