abstruct_static_this笔记

1.抽象类不能被实例化,但是具有构造器供子类继承,子类创建实例时,会先使用抽象类的构造器函数
例如:

	public animal() {
			System.out.println("abstract constructor");
		}
	
	public people() {
		System.out.println("people constructor");
	}

2.抽象类可以不具备抽象方法 <---->区别于接口里是abstract Methods
body里一旦有abstract 修饰的方法,就一定要将类声明为abstract 类
而且abstract Methods不能用static修饰(static修饰就应该可以用类名调用,但抽象类没有主体,也就不该用static修饰)
而子类应该覆盖所有的abstract 方法,否则子类还是抽象类

例如:
	abstract class animal{
		private  int tea = 5;
		private String like = "I like Red Tea";
		public animal() {
			System.out.println("abstract constructor");
		}
		public void eat() {
			System.out.println("eat");
		}
		@Override
		public String toString() {
			// TODO Auto-generated method stub
			return getClass().getName()+"   tea num = "+tea+"  "+like;
		}
	}

例如:
	public abstract void sayHello();
	//声明abstract 方法
	@Override
	public void sayHello() {
		System.out.println("Call me back to drink tea");
	}

3.static 代码块:
this代表当前对象,static于类加载的时候存在优先于实例对象的产生,static调用非静态时并未产生对象,因此static不能用this
当类的构造器被调用时,static代码块会加载,作用是初始化类,只加载一次(也就是说不一定new某一个类,static块才被使用)
例如:

	 abstract class animal{
			private static int tea ;
			private static String like;
			static {
				tea = 5;
				like = "i like rea tea";
				System.out.println("func : initial class");
			}
		}

例如:
========not permitted==============
	private int tea ;
	private static String like;
	static {
		this.tea = 5;
		like = "i like rea tea";
		System.out.println("func : initial class");
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值