JAVA学习.抽象类

内存图:


示例代码:

package ljy.abcstraccalss;

//一个拥有一个或者多个抽象方法的类,必须显示的用abstract
//来修饰自我,该类为抽象类(也叫被动抽象类)。
public abstract class A {
	
	//抽象类是一个残缺的类,但其仍然拥有构造方法。
	void method1(){
		
		System.out.println("method1 is invoked~");
		
	}
	
	void method2(){}
	//存在一个方法,这样的实现为空实现,也算实现。
	
	abstract void method3();
	//只有方法签名,没有方法体,该方法未实现,必须声明为抽象方法。

}

package ljy.abcstraccalss;

//子类继承抽象父类,子类必须实现父类的抽象方法
//子类才可以脱掉abstract的帽子,子类如果没有实
//现,父类的抽象方法,那么子类即使自身拥有大量
//的额外方法资产,也不能被实例化,因为其体内有
//方法未实现,只能继续用abstract来修饰。
public class B extends A {

	void method3() {
		System.out.println("Class B method3 is invoked~");

	}

}

package ljy.abcstraccalss;

public class Tester {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//A  a= new A();
		//抽象类无法被实例化
		B  b = new B();
		b.method3();
		A a =b;
		a.method3();

	}

}

====================================

Result:

Class B method3 is invoked~
Class B method3 is invoked~

====================================


package ljy.abcstraccalss;


//主动抽象类 
//一个类的所有方法都实现了,是可实例化类
//其故意主动地声明自己是抽象类。
//一个类的作者不让使用者去创建这个类的实
//例,其故意申明此类为抽象类。该类的作者
//认为这个类是一个抽象类的概念,没有创建
//实例的意义,该类需要被继承,让后创建子
//类的实例才有意义。
//任何一个类,无论是否有抽象方法,都可以
//用abstract来修饰。(除了final类)
public abstract class Animal {
	
	private String name;
	private Integer age;
	
	void sound(){}
	void run(){}

}
原创出处:http://blog.csdn.net/u012830807

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值