正常情况下抽象类是不能实例化的,但可以利用内部子类实例化,即 利用匿名内部类可以实现抽象类的,举例如下:
1、需要实例化 的 抽象类 代码如下:
public abstract class AbstractFruit {
private String name;
private int count;
//以下是getXxx()和setXxx()方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
//打印信息
public void show(){
System.out.println(getName()+"="+getCount());
}
//返回自身的对象
public static AbstractFruit newInstance(){
return new AbstractFruit() { };
}
}
2、测试类 实现代码 如下:
public class Test {
public static void main(String[] args) {
//获取第一个对象
AbstractFruit abstractFruit=AbstractFruit.newInstance();
abstractFruit.setName("苹果");
abstractFruit.setCount(100);
//获取第二个对象
AbstractFruit abstractFruit1=AbstractFruit.newInstance();
abstractFruit1.setName("香蕉");
abstractFruit1.setCount(200);
//打印第一个对象的信息
abstractFruit.show();
//打印第二个对象的信息
abstractFruit1.show();
}
}