抽象

Main类里面:
/**

 */
public class Main {
    public static void main(String[] args) {
        Animal animalDog = new Dog();
        Animal animalCat = new Cat();

        animalCat.eat();
        animalDog.eat();

        if(animalCat instanceof Cat)
        {
            Dog dog = (Dog)animalCat;
        }

    }

}

/**
 animal类
 */

/*
* 抽象类与抽象方法:
1.抽象方法和抽象类必须使用abstract 修饰类定义,有抽象方法的类只能被定义成抽象类,抽象类中可以没有抽象方法
2.抽象方法和抽象类的使用规则:
1)使用abstract关键字来修饰定义抽象类;抽象方法中不能有方法
2)抽象方法不能实例化,不能使用new关键字创建类的实例
3)抽象类可以包含成员变量,方法(普通方法和抽象方法),构造器,内部类(接口,枚举)5种成分
4)含有抽象方法的类只能被定义成抽象类


C++中:
含有纯虚函数的类为抽象类;C++中规定抽象类型将不能再定义对象
例如:
class cclassA{
public:
virtual void fun_a()=0;
}

int main (){
cclassA objA;//error!!!不允许使用抽象类型的对象
}
* */
public abstract class Animal {
    int nAge;
    String strName;
    //普通方法
    public void eat()
    { System.out.println("Animal->eat()");}
        //内部类
        class Inner{
        }
        //抽象方法,只能用默认和public修饰
        abstract void Sleep();


}

/**
Cat类
 */
public class Cat  extends Animal{


    @Override
    public void eat() {
        System.out.println("Cat->eat()");
    }

    @Override//没有sleep上面会报错!
    void Sleep() {

    }
}

cat类:
public class Dog extends Animal {
    @Override
    public void eat() {
        System.out.println("Dog--->eat");
    }

    @Override
    void Sleep() {

    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容