package cm.abstracts.limit;
//这个类用来测试抽象内部类
public class InstanceFfourty {
public static void main(String[] args) {
//非static方法必须通过实例化对象才能使用,通过子类创建抽象类(父类)的对象
Abstract a = new Extends();
//调用的是被子类覆写过的普通方法
a.fun2();
}
}
/** 根据相关概念,抽象类中依然可以定义内部的抽象类,将抽象类实现实例化对象的子类也可以根据需要,选择是否定义子类内部类
来继承抽象内部类。
*/
//创建抽象类,关键字abstract,必须要有子类:父类
abstract class Abstract{
//创建外部抽象类普通方法,外部抽象类不可使用static定义
public void fun2() {
System.out.println("今天是充实的一天吗?");
}
//创建抽象类内部类,即抽象类内部抽象类,可有可无子类,内部抽象类可以使用static关键字声明
abstract class Abstract2{
//声明一个内部抽象类的普通方法
public void hard() {
System.out.println("我很强大!");
}
//创建内部抽象类的抽象方法
public abstract void fun();
}
}
//既有抽象类,必须创建此含有继承关系的普通类:子类
class Extends extends Abstract{
//继承中,普通方法间的覆写
// public void fun2() {
// System.out.println("今天是充实的一天");
// }
//已有抽象类内部抽象类,可根据子类的实际开发需要选择,是否创建继承内部抽象类的内部子类
class Extends2 extends Abstract2{
//内部子类必须覆写内部抽象类中的全部抽象方法,覆写抽象方法fun()
public void fun() {
}
// @Override 快捷方式创建抽象覆写方法
// public void fun() {
// // TODO Auto-generated method stub
//
// }
}
}
彦舜原创