接口
在之前,我们介绍了简单的介绍了抽象类,今天我们来讲一下接口。所谓其实就是当一个抽象类中的方法全部都是抽象方法的时候,这个类就可以用接口来实现。
//接口的定义方法,用关键字interface来完成
interface Demo{
abstract void show1();
abstract void show2();
}
例子:
class InterfaceDemo1{
public static void main(String[] args){
Dog d=new Dog();
d.eat();
d.maiMeng();
d.daoMang();
Person p=new Person();
p.maiMeng();
}
}
abstract class Animal{
public abstract void eat();
}
class Person extends Animal implements A,B{
public void eat(){
System.out.println("人啥都吃");
}
public void daoMang(){
System.out.println("导盲人");
}
public void maiMeng(){
System.out.println("卖萌人");
}
}
class Dog extends Animal implements A,B{
public void eat(){
System.out.println("狗吃肉");
}
public void daoMang(){
System.out.println("导盲狗");
}
public void maiMeng(){
System.out.println("卖萌狗");
}
}
interface A{
void daoMang();
}
interface B{
void maiMeng();
}
接口中成员变量的特点:
在接口中,定义的变量必须有特定的修饰符public static final
定义方法也有特定的修饰符 public abstract
接口不能创建对象
子类必须覆盖接口中所有的方法后接口才可以实例化。
接口解决了多继承的弊端,一个类可以对应多个接口。
一般来说接口中所描述的都是一个类所要拓展的事物。
单例模式
所谓单例模式就是该类只能创建一个对象
//饿汉模式
class Single{
private static Single s1=new Single();
private Single(){
}
public static Single getSingle1(){
return s1;
}
}
//饱汉模式
class Single2{
private static Single2 s2=null;
private Single2(){
}
public static Single2 getSingle2(){
if(s2==null){
s=new Single2();
}
return s;
}
}