zoukankan      html  css  js  c++  java
  • Java进阶学习(4)之继承与多态(下)

    • 多态变量和向上造型
      • 多态变量
        • 子类和子类型
          • 类定义了类型
          • 子类定义了子类型
        • 子类的对象可以被当作父类的对象来使用
          • 赋值给父类的变量
          • 传递给需要父类对象的函数
          • 放进存放父类对象的容器里
        • 多态变量
          • Java的对象变量是多态的,它们能保存不止一种类型的对象
          • 它们可以保存的是声明类型的对象,或声明类型的子类的对象
          • 当把子类的对象赋给父类的变量的时候,就发生了向上造型
      • 向上造型
        • 子类的对象可以赋值给父类的变量
          • 注意,只是管理者发生了变化
        • 父类的对象不能赋值给子类的变量
          • Vechicle v = new Vechicle();
          • Car c = new Car();
          • v = c;//可以
          • c = v 错误
        • 可以用造型
          • c = (Car) v ;
          • (只有当v这个变量实际管理的是Car才行)
        • 造型
          • 用括号围起类型放在值的前面
          • 对象本身并没有发生任何变化
            • 所以不是“类型转换”
          • 运行时有机制
    • 类型系统
      • Object类
        • 图片
        • toString函数
          • 1 public String toString()
            2 {
            3 return "CD [artist=" + artist + ", numofTracks=" + numofTracks + ", toString()=" + super.toString() + "]";
            4 }
        • equals函数
          • 1 public boolean equals(Object obj)
            2 {
            3 // TODO Auto-generated method stub
            4 CD c = (CD)obj;
            5 return artist.equals(c.artist);
            6 }
      • 增加新的子类
        • 可扩展性
          • 不需要修改就可以直接去适应新的情况
        • 可维护性
          • 经过修改可以去适应新的情况
        •  1 package com.dome;
           2 
           3 public class MP3 extends Iterm
           4 {
           5 
           6     private String artist; 
           7     
           8     public MP3(String title, int playingTime, boolean gotIt, String comment,String artist)
           9     {
          10         super(title, playingTime, gotIt, comment);
          11         // TODO Auto-generated constructor stub
          12         this.artist=artist;
          13     }
          14 
          15     
          16     
          17     @Override
          18     protected void print()
          19     {
          20         // TODO Auto-generated method stub
          21         System.out.print("MP3:");
          22         super.print();
          23         System.out.println(":"+artist);
          24     }
          25 
          26 
          27 
          28     public static void main(String[] args)
          29     {
          30         // TODO Auto-generated method stub
          31 
          32     }
          33 
          34 }
  • 相关阅读:
    hdu 4503(湫湫系列故事——植树节)
    JAVA里面如何让一个线程死亡或结束
    c 语言static
    TUXEDO与ORACLE数据库的互连
    关于使用PRO*C编程的一些简单说明和例子
    atoi函数
    我的顶级Java工具名单
    Tuxedo动态配置命令 tmconfig用法总结
    main(argc,argv) 中的参数
    pro c中varchar类型变量的arr函数是做什么用?
  • 原文地址:https://www.cnblogs.com/quxiangjia/p/12271760.html
Copyright © 2011-2022 走看看