黑马程序员-继承和多态
来源:互联网 发布:国际数据统计公司 编辑:程序博客网 时间:2024/05/21 23:27
------- android培训、java培训、期待与您交流! ----------
封装、继承和多态是面向对象编程的三大特征,直接上实例:
abstract class Person//抽象类:人类的模板{String name;//名字int age;//年龄abstract public void eat();//吃的抽象函数Person(String name,int age)//构造函数{this.name=name;this.age=age;}public static final void show(Person p)//静态函数且不允许复写{System.out.println("名字:"+p.name+"年龄:"+p.age);p.eat();if(p instanceof Student){Student s=(Student)p;s.study();}else if(p instanceof Worker){Worker w=(Worker)p;w.work();}if(p instanceof Smoke){Smoke s=(Smoke)p;s.smoke();}}}interface Smoke//接口:抽烟{void smoke();}class Student extends Person//不抽烟的学生类{Student(String name,int age){super(name,age);}public void eat(){System.out.println("我在学生食堂吃");}public void study(){System.out.println("good study");}}class CyStudent extends Student implements Smoke//抽烟的学生类{CyStudent(String name,int age){super(name,age);}public void smoke(){System.out.println("走,上厕所抽烟去");}}class Worker extends Person//不抽烟的工人{Worker(String name,int age){super(name,age);}public void eat(){System.out.println("我在公司食堂吃");}public void work(){System.out.println("work hard");}}class CyWorker extends Worker implements Smoke//抽烟的工人{CyWorker(String name,int age){super(name,age);}public void smoke(){System.out.println("饭后一根烟,快乐似神仙");}}class Life//生活类{public static void main(String[] args){Student p1=new Student("zhansan",1);CyStudent p2=new CyStudent("wangwu",2);Worker p3=new Worker("lisi",3);CyWorker p4=new CyWorker("zhaoliu",4);Person.show(p1); Person.show(p2); Person.show(p3); Person.show(p4); }}
在这个实例中,类的继承和实现关系入下:
Person类是最顶层的类
Smoke是一个接口
Student 类继承自Person类
Worker类继承自Person类
CyStudent类继承Student类并实现Smoke接口
CyWorker类继承自Worker类并实现了Smoke接口
在Life类中分别创建了Student、Worker、SyStudent、CyWorker类的一个实例,然后通过在Person类中定义的静态成员函数show(),来显示各个实例的具体信息。在show()中,通过判断对象的类型来调用不同对象成员函数。其运行结果如图:
- 黑马程序员-继承和多态
- 黑马程序员-Java继承和多态
- 黑马程序员_面向对象_继承和多态
- 黑马程序员--继承,覆盖,抽象类,和多态
- 黑马程序员---面向对象:继承、抽象、接口和多态
- 黑马程序员_OC面向对象之继承和多态
- 05.黑马程序员-继承、super关键字和多态
- 黑马程序员-JAVA面向对象封装、继承和多态
- 黑马程序员_封装、继承和多态
- 黑马程序员----Java中的封装,继承和多态详解
- 黑马程序员 封装特性之继承和多态
- 黑马程序员-.NET基础之继承和多态
- 黑马程序员------[Objective-C]继承和多态
- 黑马程序员——继承和多态
- 黑马程序员--------面向对象继承和多态
- 黑马程序员-类的封装,继承和多态
- 黑马程序员_Objective-C语言_继承和多态
- 黑马程序员-----OC学习之类的继承和多态
- Debug时如何跳过(不执行)某些代码
- smarty里使用php函数
- ExtJs中如何灵活使用Iframe!
- 被墙后的替代方案
- Linq To Entity经验:如何解决按需所取
- 黑马程序员-继承和多态
- 初学C#线程二
- oracle中的IMU和 PVRS
- HTTP 之 报文学习
- Android中的单元测试
- 随谈天朝,明末,英雄志,满清和中国文化,或许是坑
- Android中图片的展示之Webview居中显示图片
- 菜菜从零学习WCF三(配置服务)
- Java Vector方法 add()与addElement()