代码改变世界

抽象类

2016-03-21 16:14  我就是wade  阅读(291)  评论(0)    收藏  举报

1 抽象类概念:

  包含一个抽象方法的类就是抽象类

2  抽象方法:

   声明而未被实现的方法,抽象方法必须使用abstract关键字声明

3  抽象类被子类继承,子类(如果不是抽象类)必须充血抽象类中的所有抽象方法

4  定义格式:

  abstract class className{

    属性

    方法

    抽象方法  

5 抽象类不能直接实例化,要通过其子类进行实例化

 

//abstract class Abs{
//	private int age;
//	public void tell(){
//		
//	}
//	//abstract method抽象方法
//	public abstract void say();
//}
//public class AbsDemo01 {
//
//	public static void main(String[] args) {
//		// TODO Auto-generated method stub
////		Abs a = new Abs();抽象类不能直接被实例化
//	}
//
//}




abstract class Abs{
	private int age;
	protected  int sex;
	public String name="NAME";
	public void tell(){
		System.out.println("fateher----sayMethod");
	}
	//abstract method抽象方法
	public abstract void say();
	public abstract void print();
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getSex() {
		return sex;
	}
	public void setSex(int sex) {
		this.sex = sex;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	

}

class AbsDemo extends Abs{
	//抽象类被子类继承 必须重写抽象类中的所有抽象方法
	public void say(){
		System.out.println("son----say");

	}

	public void print() {
		System.out.println("son----print");

	}

	@Override
	public void tell() {
		// TODO Auto-generated method stub
//		super.tell();
		System.out.println("son----sayMethod");
	}
	
}
public class AbsDemo01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		AbsDemo a = new AbsDemo();
		a.say();
		a.tell();
		System.out.println(a.name);//子类可以直接访问父类的publc成员变量,也可以通过get set方法
		a.setAge(123);
		System.out.println(a.getAge());//子类通过get set方法访问父类私有成员变量
		a.setSex(1);//子类可以直接访问父类的protected成员变量,也可以通过get set方法
System.out.println(a.sex); a.setName("afafas"); System.out.println(a.name); } }