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 }
  • 相关阅读:
    [置顶] windows player,wzplayerV2 for windows
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    编译cegcc 0.59.1
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    windows player,wzplayerV2 for windows(20140416)更新
    编译cegcc 0.59.1
  • 原文地址:https://www.cnblogs.com/quxiangjia/p/12271760.html
Copyright © 2011-2022 走看看