抽象类的使用方法


抽象类的使用方法

public class AbstractTest {
    //实践一下
	public static void main(String[] args) {
		//new abs;
		//- Cannot instantiate the type abs报错  原因:抽象类不能被实例化
		
		Abstract abstract1 = new Abstract();
		abstract1.doSomething();//体现继承性,继承父类的方法
		
        abstract1.eat();//依靠子类的重写实现抽象方法
        //抽象类
        
		
	}
}

abstract class abs {
	// 抽象类的本质是 类!!! 满足单继承
	// 总结:抽象的类不一定有抽象方法,但是有抽象方法的类一定是抽象类

    //抽象类不能被实例化 ,可以定义抽象方法,也可以定义普通方法,可以(必须)定义构造器(即使你看不到存在默认的构造器(构造方法)),
	//因为需要子类运行父类的方法,必须进行实例化,也必须调用构造器中的super();最终调用Object类中的空参构造器

	public abstract void eat();// 抽象方法,子类必须重写父类中的方法
	// 因为抽象方法没有方法体,所以要靠实现类(子类)的重写的方法实现
	
	
	public void doSomething() {// 普通方法可以在抽象类中定义
		System.out.println("WDNMD!!");
	}
}
//子类
class Abstract extends abs {
	@Override
	public void eat() {
		System.out.println("子类的  eat()方法 执行");
		//在eclipse中实现了某个抽象方法会用紫色的三角号标识
	}
}