抽象类:当描述一个类的时候,如果不能确定功能函数如何定义,那么该类就可以定义为抽象类,功能函数应该描述为抽象函数。


抽象类的好处:强制要求子类一定要实现指定的方法。



abstract不能与以下关键字共同修饰一个方法



1.abstarct不能与private共同修饰一个方法



2.abstract不能与static共同修饰一个方法



3.abstract不能喝final共同修饰一个方法


抽象类需要注意细节:

    1.如果一个函数没有方法体,那么该函数必须要使用abstract修饰,把该函数修饰成抽象的函数;


    2.如果一个类出现了抽象的函数,那么该类也必须使用abstract修饰;


    3.如果一个非抽象类继承了抽象类,那么必须要把抽象类的所有抽象方法全部实现;


    4.抽象类可以存在非抽象方法,也可以存在抽象的方法;


    5.抽象类可以没有抽象方法;


 6.抽象类是不能创建对象的;


         因为:因为抽象类是存在抽象方法的,如果能让抽象类创建对象的话, 那么使用抽象的对象调用抽象方法是没有任何意义的。


可以存在构造函数的,其构造函数是提供给子类创建对象的时候初始化父类的属性的;


abstract class Animal
{
String name;
String color;
public Animal(String name, String color){
this.name = name;
this.color = color;
}
public abstract void eat();
public void sleep(){
System.out.println(name + "都能睡觉。。。。");
}
}
class Dog extends Animal
{
public Dog(String name, String color){
super(name, color);
}
public void eat(){
System.out.println(name+"吃骨头。。。。");
}
}
class Demo49
{
public static void main(String[] args)
{
// Animal dog = new Animal("哈士奇", "白色");//抽象类不允许创建对象
Dog dog = new Dog("哈士奇", "白色");
dog.eat();
System.out.println("Hello World!");
}
}