Java面向对象多态性

来源:互联网 发布:建筑装饰定额预算软件 编辑:程序博客网 时间:2024/05/22 20:52
package com.chenglei.Pol;class A {public void tell1(){System.out.println("A--tell1()");}public void tell2(){System.out.println("A--tell2()");}}class B extends A{public void tell1(){System.out.println("B--tell1()");}public void tell3(){System.out.println("B--tell3()");}}abstract class Person{private int age;private String name;public void setAge(int age){this.age = age;}public int getAge(){return age;}public void setName(String name){this.name = name;}public String getName(){return name;}public Person(int age, String name){this.age = age;this.name = name;}public abstract void want();}class Student extends Person {private int score;public void setScore(int score){this.score = score;}public int getScore(){return score;}public Student(int age, String name, int score){super(age,name);this.score = score;}public void want(){System.out.println("姓名:"+getName()+" 年龄:"+getAge()+" 成绩:"+getScore());}}class Worker extends Person{private int salary;public void setSalary(int salary){this.salary = salary;}public int getSalary(){return salary;}public Worker(String name, int age, int salary){super(age,name);this.salary = salary;}public void want(){System.out.println("姓名:"+getName()+" 年龄:"+getAge()+" 成绩:"+getSalary());}}interface USB{void start();void stop();}class C{public static void work(USB u){u.start();System.out.println("工作中");u.stop();}}class USBDisk implements USB{public void start(){System.out.println("U盘开始工作");}public void stop(){System.out.println("U盘结束工作");}}class Printer implements USB {public void start(){System.out.println("打印机开始工作");}public void stop(){System.out.println("打印机结束工作");}}public class PolDemo {public static void main(String[] args) {//向上转型B b = new B();A a = b;a.tell1();//tell1()重写的a.tell2();//向下转型A a2 = new B();B b2 = (B)a2;b2.tell1();b2.tell2();b2.tell3();/* * instanceof * 判断是否是其类的一个实例 */A a3 = new A();System.out.println(a3 instanceof A);System.out.println(a3 instanceof B);A a4 = new B();System.out.println(a4 instanceof A);System.out.println(a4 instanceof B);Student stu = new Student(12,"xiaoming",78);stu.want();Worker worker = new Worker("xiaohua",23,80);worker.want();C.work(new USBDisk());C.work(new Printer());}}

0 0
原创粉丝点击