JAVA面向对象的多态性
来源:互联网 发布:数据库权限管理 编辑:程序博客网 时间:2024/05/16 16:04
JAVA面向对象的多态性
01——向上转型和向下转型及简单应用
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");}}public class PolDemo01 {public static void main(String[] args) {//B b = new B();//A a = b;//upA a = new B();a.tell1();a.tell2();//downA a1 = new B();B b = (B)a1;//B b = new B();b.tell1();b.tell2();b.tell3();System.out.println("----");say(new B());say(new A());}public static void say(A a){a.tell1();}}
打印结果:
B_tell1
A_tell2
B_tell1
A_tell2
B_tell3
----
B_tell1
A_tell1
02——instanceof的使用
public static void main(String[] args) {A a = new A();System.out.println(a instanceof A);System.out.println(a instanceof B);A a1 = new B();System.out.println(a1 instanceof A);System.out.println(a1 instanceof B);}
打印结果:
true
false
true
true
03——抽象类的应用
abstract class Person{private int age;private String name;public Person(int age ,String name){this.age = age;this.name = name;}public int getAge(){return age;}public void setAge(int age){this.age = age;}public String getName(){return name;}public void setName(String name){this.name = name;}public abstract void want();}//通过抽象类的方法 继承了getAge()等一系列方法。 //使得子类拥有了父类的属性和方法。class Student extends Person{private int 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 money;public int getMoney(){return money;}public Worker(int age, String name,int money) {super(age, name);this.money = money;}public void want() {System.out.println("姓名: "+getName()+" 年龄:"+getAge()+" 工资: "+getMoney());}}public class AbsDemo01 {public static void main(String[] args) {Student s = new Student(10, "小白", 100);s.want();Worker w = new Worker(30, "大白", 3000);w.want();}}
打印结果:
姓名: 小白 年龄:10 成绩: 100
姓名: 大白 年龄:30 工资: 3000
04——面向对象接口的使用
interface USB{void start();void stop();}//都得按照USB的这个模板来运行class Computer{public static void work(USB u){u.start();System.out.println("working");u.stop();System.out.println("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 InterDemo01 {public static void main(String[] args) {Computer.work(new USBDisk());Computer.work(new Printer());}}
打印结果:
U盘开始工作
working
U盘停止工作
stop
打印机开始工作
working
打印机停止工作
stop
——————记录学习过程 日后可能会用到
阅读全文
0 0
- java 面向对象的多态性
- JAVA面向对象的多态性
- Java面向对象高级--对象的多态性
- Java面向对象--对象的多态性
- 面向对象JAVA多态性
- Java面向对象多态性
- Java面向对象多态性
- Java面向对象多态性的应用
- 面向对象的多态性
- 面向对象的多态性
- 面向对象--对象的多态性
- java面向对象(十四) 多态性
- JAVA面向对象之多态性
- Java面向对象多态性应用
- Java面向对象中的多态性
- Java-面向对象(高级篇)--对象的多态性
- Java面向对象编程——多态性的实现
- Java学习第四周(1)--面向对象的多态性
- 希尔排序法1
- 如何用fiddler造出满意的接口返回数据
- TreeMap源码分析(jdk1.8)
- YK的书架
- Jquery中的Ajax
- JAVA面向对象的多态性
- Echarts数据可视化全解注释
- 深度学习(入门)
- (3)2017.8.4-java基础语法和控制流程(上)
- Java中list.map.set基本概念,方法比较和遍历方式
- UVA11916 Emoogle Grid
- 对一个二维数组中的数据排序
- Java提高篇----抽象类与接口
- leetcode 220. Contains Duplicate III