欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

抽象类和接口 博客分类: JAVA 接口抽象类

程序员文章站 2024-03-24 19:58:46
...

1、接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的

2、实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写方法,抽象类中的抽象方法必须要在子类中实现,一般的应用里,最*的是接口,然后是抽象类实现接口,最后才到具体类实现。 3、接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用。

 

一个抽象类

public abstract class Corp {
    
    protected abstract void produce(){};
    protected abstract void shell();
    protected void makeMoney(){
        this.produce();
        this.shell();
        System.out.println("kkkkkkkkkkkkkkk");
        
    }
    

}

 子类:

public class ShiChang extends Corp {

    @Override
    protected void produce() {
        System.out.println("iiiiiiiiiiiiproduce");
    }

    @Override
    protected void shell() {
        System.out.println("iiiiiiiiiiiishell");

    }
    
    public void makeMoneyllllllll(){
        super.makeMoney();
        System.out.println("oooooooooooooooooo");
    }
    

}

 接口:

public interface ILeaf {
//获得信息
public String getInfo();
}

 

 

实现类:

public class Leaf implements ILeaf {

private String name = "";
private String position = "";
private int salary=0;


//通过构造函数传递信息
public Leaf(String name,String position,int salary){
this.name = name;
this.position = position;
this.salary = salary;
}

public String getInfo() {
String info = "";
info = "名称:" + this.name;
info = info + "\t职位:"+ this.position;
info = info + "\t薪水:"+this.salary;
return info;
}
}

使用方法:

ILeaf a = new Leaf("a","开发人员",2000);

 再看一个例子:

public class WangPo implements KindWomen {
private KindWomen kindWomen;
public WangPo(){ //默认的话,是潘金莲的代理
this.kindWomen = new PanJinLian();
}
//她可以是KindWomen的任何一个女人的代理,只要你是这一类型
public WangPo(KindWomen kindWomen){
this.kindWomen = kindWomen;
}
public void happyWithMan() {
this.kindWomen.happyWithMan(); //自己老了,干不了,可以让年轻的代替
}
public void makeEyesWithMan() {
this.kindWomen.makeEyesWithMan(); //王婆这么大年龄了,谁看她抛媚眼?!
}
}

 

 

 

相关标签: 接口 抽象类