Abstract Class_02(拓展)

package cm.abstracts.limit;

//这个类用来测试抽象内部类
public class InstanceFfourty {
	public static void main(String[] args) {
		//非static方法必须通过实例化对象才能使用,通过子类创建抽象类(父类)的对象
		Abstract a = new Extends();
		//调用的是被子类覆写过的普通方法
		a.fun2();
		
		//同理
		Abstract.Abstract2 a2 = new Extends2();
		a2.fun();
	}
}

/** 根据相关概念,抽象类中依然可以定义内部的抽象类,将抽象类实现实例化对象的子类也可以根据需要,选择是否定义子类内部类
 来继承抽象内部类。
 
 */

//创建抽象类,关键字abstract,必须要有子类:父类
abstract class Abstract{
	//创建外部抽象类普通方法,外部抽象类不可使用static定义
	public void fun2() {
		System.out.println("今天是充实的一天吗?");
	}
	
	//创建抽象类内部类,即抽象类内部抽象类,可有可无子类,内部抽象类可以使用static关键字声明
	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
			
		}
//	}
}

创建Extends2类:

package cm.abstracts.limit;

import cm.abstracts.limit.Abstract.Abstract2;

class Extends2 extends Abstract2 {

	@Override  //中文意思备注:覆盖
	public void fun() {
		System.out.println("此刻的我听着,周杰伦的,你比从前快乐");
	}

}

彦舜原创

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值