面向对象的特征--多态

来源:互联网 发布:五官立体知乎 编辑:程序博客网 时间:2024/06/08 18:05

多态是什么?

多态就是同一操作(方法)作用于不同的对象时,可以有不同的解释,产生不同的执行结果。

多态编程的好处

在父类写一个虚方法或抽象方法,子类去重写父类的方法,在调用的时候系统会根据对象运行时的类型决定调用哪个方法。


假设我们有一个“书”类,然后有很多子类继承“书”类。

例如“计算机组成原理”类继承“书类”,“深入Java面向对象”继承“书”类...

而这些子类都有类似的方法,即被不同的人使用

抽象类和抽象方法

    abstract关键字:

        abstract关键字用来修饰抽象类和抽象方法。

    抽象类:

        使用abstract关键字修饰的抽象类不能被实例化。

        抽象类中可以有非抽象方法。

        抽象类不能是密封的或者静态的。

    抽象方法:

        使用abstract关键字修饰的抽象方法是一个没有实现的方法,由子类重写抽象方法来实现。

        抽象方法没有大括号,直接在小括号后以分号";"结尾。

        含有抽象方法的类必须是抽象类。

        抽象方法必须在其子类中实现,除非它的子类也是抽象类。


    class Demo
    {
        List<Book> books = new List<Book>();
        public void Test()
        {
            books.Add(new ComputerBook());
            books.Add(new JavaBook());
            //遍历时不用加判断
            foreach (Book item in books)
            {
                item.ByReading();
            }
        }
    }

    abstract class Book
    {
        public abstract void ByReading();
    }

  
    class ComputerBook : Book
    {
        public override void ByReading()
        {
           println("我是计算机类书籍,被在校大学生使用。");
        }
    }


    class JavaBook : Book
    {
        public override void ByReading()
        {
            println("我是Java书籍,被在业Java程序员使用。");
        }
    }

打印结果:

我是计算机类书籍,被在校大学生使用。

我是Java书籍,被在业Java程序员使用。



原创粉丝点击