抽象以及多态的使用方法

2018-12-11  本文已影响0人  坏坏坏坏坏

抽象

关键字:abstract
抽象的方法特点是:
1.没有方法体
2.如果类里面的构造方法是抽象的,则类也是应该属于抽象方法
3.父类的构造方法如果是抽象的,则构造方法不需要填写内容,子类中需要重写该方法;

public abstract void eat();

多态:
(1)编译的时候,条用的父类的方法。运用的时候实际上是调用的子类的方法里面
(2)父类的变量可以接受子类里面的对象

多态的使用方法:

package day11;

/**
 * 教员
 * @author yangzc
 *
 */
public abstract class Teacher {
    String name;
    int age;
    
    /**
     * 自我介绍
     */
    protected abstract void sayHi();
    
    /**
     * 授课
     */
    public abstract void lesson();
}

package day11;

/**
 * Java教员
 * @author yangzc
 *
 */
public class JavaTeacher extends Teacher {

    @Override
    protected void sayHi() {
        System.out.println("大家好!我是java老师!");
        // TODO Auto-generated method stub
        
    }

    @Override
    public void lesson() {
        System.out.println("打开eclipse");
        System.out.println("知识点讲解");
        System.out.println("总结提问");     
    }

}



package day11;

/**
 * .NET教员
 * @author yangzc
 *
 */
public class DotNetTeacher extends Teacher {

    @Override
    public void sayHi() {
        // TODO Auto-generated method stub
        System.out.println("大家好!我是.NET老师!");
    }

    @Override
    public void lesson() {
        // TODO Auto-generated method stub
        System.out.println("打开Visual Studio");
        System.out.println("知识点讲解");
        System.out.println("总结提问"); 
    }

}



package day11;

public class SQLServerTeacher extends Teacher {

    @Override
    public void sayHi() {
        // TODO Auto-generated method stub
        System.out.println("大家好!我是数据库老师!");
    }

    @Override
    public void lesson() {
        // TODO Auto-generated method stub
        System.out.println("打开企业管理器");
        System.out.println("知识点讲解");
        System.out.println("总结提问");     
    }

}



package day11;

/**
 * 教学管理
 * @author yangzc
 *
 */
public class Manager {
    /**
     * 对教员进行考核
     * @param t 表示教员
     */
    public void judge(Teacher t){
        t.sayHi();
        t.lesson();
    }
}


package day11;

/**
 * 对教学管理中心进行测试
 * @author yangzc
 *
 */
public class ManagerTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JavaTeacher t1 = new JavaTeacher();
        DotNetTeacher t2 = new DotNetTeacher();
        Manager manager = new Manager();
        SQLServerTeacher t3 = new SQLServerTeacher();
        //对java老师进行评估
        //manager.judge(t1);
        //对.NET老师进行评估
        //manager.judge(t2);
        //对数据库老师进行评估
        manager.judge(t3);
    }

}


多态重要部分 是由4部分组成

父类的方法定义

父类的方法中,是抽象类,包含着所有的属性,构造方法也是抽象的。

子类的定义

子类先继承父类的属性,然后CTRL+1 重写父类的构造方法,将子类的内容填写进去

测试的定义

写出一个函数 ,里面的参数是父类的程序名字 +对象名字,函数中的内容写出直接调用该对象的父类的函数名字

实例化的定义

将子类和测试的程序导入实例化中

上一篇 下一篇

猜你喜欢

热点阅读