abstract

抽象类
--是一种模板模式。抽象类为所有子类提供了一个通用模板,子类在这个模板基础上进行扩展
要点:
--有抽象方法的类只能定义成抽象类
--抽象类不能实例化(不能用new来实例化对象)
--抽象类可以包含属性,方法和构造方法。但是构造方法不能用new来实例化,只能被子类来调用
--抽象类只能用来继承
--抽象方法必须被子类实现

 

package mypro01;
//抽象方法必须是抽象类

public abstract class Animal {
    //abstract String name; 错误
    public int age;
    
    //构造方法
    
    public Animal() {
        System.out.println("animal class");
    }
    
    //抽象方法,没有函数体
    
    public abstract void sleep();
    
    //普通方法,调用抽象方法
    
    public void eat() {
        System.out.println("animal is eating");
        sleep();
    }
       
    
    
}

class Dog extends Animal{
    @Override
//抽象方法必须被子类实现
public void sleep() { System.out.println("dog is sleeping"); } }
package mypro01;

public class Test6 {
    public static void main(String[] args) {
        // Animal a=new Animal(); 抽象类不可以用new实例化
        
        
        
        Dog d=new Dog();
        d.sleep();//animal class  dog is sleeping
        d.eat();//animal is eating  dog is sleeping
        
        /*
        Animal d=new Dog();
        Dog  d1=(Dog)d;
        d1.eat();
        d1.sleep();
        */
        
        
        
    }
}

 

posted on 2020-02-26 21:50  happygril3  阅读(282)  评论(0)    收藏  举报

导航