黑马程序员-继承和多态
2013-04-04 00:16
239 查看
------- android培训、java培训、期待与您交流! ----------
封装、继承和多态是面向对象编程的三大特征,直接上实例:
在这个实例中,类的继承和实现关系入下:
Person类是最顶层的类
Smoke是一个接口
Student 类继承自Person类
Worker类继承自Person类
CyStudent类继承Student类并实现Smoke接口
CyWorker类继承自Worker类并实现了Smoke接口
在Life类中分别创建了Student、Worker、SyStudent、CyWorker类的一个实例,然后通过在Person类中定义的静态成员函数show(),来显示各个实例的具体信息。在show()中,通过判断对象的类型来调用不同对象成员函数。其运行结果如图:
封装、继承和多态是面向对象编程的三大特征,直接上实例:
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学习——封装、继承、多态
- 黑马程序员--Object-C--03--继承、多态
- 黑马程序员——java基础——继承、抽象类、接口、多态
- 【黑马程序员】java中--------------封装、继承、多态
- 黑马程序员—OC(继承与多态)
- 黑马程序员---------继承、抽象、接口、多态、内部类
- 黑马程序员-----OC学习之类的继承和多态
- 黑马程序员——黑马学习日志之六 静态,单例设计模式,继承,多态
- 黑马程序员------oc之面向对象特性 封装、多态、继承等
- 黑马程序员-面向对象中的继承与多态
- 黑马程序员---OC基础---封装、继承、多态、@property、id类型、实例变量修饰符
- 黑马程序员---面向对象:继承、抽象、接口和多态
- 黑马程序员——面向对象三大特征(封装、继承、多态)
- 黑马程序员—继承多态以及内部类
- 黑马程序员——Objective-C——封装、继承、多态
- 黑马程序员_五 【初识面向对象】【类、构造方法、对象】【封装、继承、多态】【this、super】
- 黑马程序员 Java基础<二>---> 继承、内部类与多态,包
- 黑马程序员_继承和多态
- 黑马程序员——OC基础学习(四)---封装,继承和多态的学习知识总结