黑马程序员--抽象方法与接口

</pre><pre code_snippet_id="350561" snippet_file_name="blog_20140517_1_9708957" name="code" class="java">

----------------- android培训java培训、期待与您交流!-----------------


package com.zhy;




/**
 * 抽象类-----通过abstract关键字来修饰的类称为抽象类类
 * 			  当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的行为方式,
 * 那么这些方法都有具体的方法体。
 *           但是有的时候,某个父类只是知道子类应该包含怎么样的方法,
 * 但是无法准确知道子类如何实现这些方法。
 * 
 * 特点:
 * 1  抽象方法一定在抽象类中
 * 2  抽象方法和抽象类都必须被abstract关键字修饰
 * 3  抽象类不能被new创建对象,因为调用抽象方法没意义
 * 4  抽象类中的方法要被使用,就必须让子类重写所有对抽象方法,建立子类对象去调用
 *     注:  如果子类只重写部分抽象方法,那么子类还是一个抽象类 	
 * 5  可以强制子类做一些事情
 * 总结-------  
 *       抽象类用private修饰,里面可以有用private修饰的方法(没有方法体),强制子类进行覆写;
     可以理解为:具有某些公共方法的一个总结类。
 * 
 * 
 * 抽象类与一般类的区别:
 * 1  抽象类比一般类多个抽象方法
 * 2  抽象类不可以实例化
 * 特殊点:   抽象类中可以不定应抽象方法,这仅仅是不让该类建立对象
 */
abstract class student11{
	/**
	 *抽象方法要存放在抽象类中。
  *抽象方法也可以存在于接口中
	 */
	abstract void learn();
}


class aa extends student11{
	void learn(){System.out.println("learn aa");};
}
class bb extends student11{
	void learn(){System.out.println("learn bb");};
}




/**
 *接口:   一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口形式来定义
 *interface :
 *特点 
 *  1没有构造方法,不能实例化;
 *  2接口只能继承接口,不能继承类
 *  3接口里没有普通方法,方法全是抽象的;
 *  4接口里的方法默认修饰符是public abstract;
 *  5接口里的字段全是全局常量,默认修饰符是public static final;
 *    接口里的成员包括(常量和抽象方法):
 *
 *注意    接口中的成员都是public的
 *总结:   1接口只定义了类应当遵循的规范,却不关心这些类的内部数据和其方法内的实现细节.
         2接口只规定了这些类里必须提供的方法;从而分离了规范和实现.增强了系统的可拓展性和维护性;
 *接口是不可以创建对象的,因为有抽象方法
 *接口可以实现多继承
 */
interface inter{
	public static final int NUM = 111;
	public abstract void show();
}
interface inter1{
	public abstract void show1();
}
//接口可以实现多继承
interface a extends inter,inter1{
	public abstract void show2();
}


//test类可以在继承类的情况下,还能实现多个接口
class test extends student11 implements inter,inter1{
	//需重写所有抽象方法
	@Override
	public void show() {}


	@Override
	public void show1() {}


	@Override
	void learn() {}
}


public class AbstractDemo {


	public static void main(String[] args) {
		aa aa = new aa();
		aa.learn();
		test t = new test();
		t.show();
		//System.out.println(t.NUM);
		System.out.println(test.NUM);
		System.out.println(inter.NUM);
	}


}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值