`

java里面的对象转型和多态

    博客分类:
  • java
阅读更多

1.对象转型 

  需要两个类之间有继承关系

 

 

 class Animal{     
public String name;
      Animal(String name){
           this.name=name;
     }
}

class Cat extends Animal{
      public String eyeColor;
      Cat(String a, String e){
            super(a);
            this.eyeColor=e;
      }
}

class Dog extends Animal{
       public String furColor;
       Dog(String a,String e){
            super(a);
            this.furColor=e;
       }
}

    Animal a = new Dog("small dog","yellow");

    System.out.println(a.furColor); //error

    System.out.println(a.name); //ok

    System.out.println(a instance of Animal); //true

    System.out.println(a instance of Dog); //true

    Dog d = (Dog)a;

    System.out.println(d.furColor);//ok

 

2.多态

    1.要有继承;

    2.要有重写;

    3.父类引用指向子类对象;(在方法里)

class Animal {
  private String name;
  Animal(String name) {this.name = name;}
  
  public void enjoy(){
    System.out.println("叫声......");
  }
 
}

class Cat extends Animal {
  private String eyesColor;
  Cat(String n,String c) {super(n); eyesColor = c;}
  
  public void enjoy() {
    System.out.println("猫叫声......");
  }
  
}

class Dog extends Animal {
  private String furColor;
  Dog(String n,String c) {super(n); furColor = c;}
 
  public void enjoy() {
    System.out.println("狗叫声......");
  }
}

class Lady {
    private String name;
    private Animal pet;
    Lady(String name,Animal pet) {
        this.name = name; this.pet = pet;
    }
    public void myPetEnjoy(){pet.enjoy();}
}

public class Test {
    public static void main(String args[]){
        Cat c = new Cat("catname","blue");
        Dog d = new Dog("dogname","black");
        Bird b = new Bird();
        Lady l1 = new Lady("l1",c);
        Lady l2 = new Lady("l2",d);
        
        l1.myPetEnjoy();
        l2.myPetEnjoy();
    }
}
 
分享到:
评论

相关推荐

    上转型对象体现多态

    深入理解Java中向上转型对象体现的多态,以及面向对象思想

    Java面向对象多态.pdf

    它是基于继承、重写和向上转型等特性实现的,多态是面向对象编程的三大特征之一,其他两个分别是封装和继承。 Java 多态包括以下三种方式 方法重写(Override) 子类可以对从父类继承的方法进行重写,以便根据子类的...

    java三大特性之多态与接口

    面向对象三大特征之多态 input可以根据不同的"type"(条件)产生不同形态 生活中的多态 一件事物根据不同的环境条件,产生不同的结果/形态 例如: H2O根据不同的温度条件,产生不同形态 -在标准大气压...

    Java实现运用上转型对象抽象方法计算圆形或圆锥的面积、周长等成员变量

    Java实现运用上转型以及对象抽象方法计算圆形或圆锥的面积、周长等成员变量

    java关于类和对象课件

    java关于类和对象课件,类的继承 方法的重写 Object类 对象转型 多态

    使用java实现面向对象编程

    第二章面向对象的java实现----继承和多态 一.继承 二.向上转型和向下转型 三.多态 四.封装、继承和多态之间的区别 第三章面向对象的java实现—接口 一.接口 二.常量 三.Java中的final关键字

    java中多态的使用实例

    主要java中接口,继承以及抽象等基础内容的实例,实初学者能刚好的理会多态的具体含义

    JAVA面向对象知识点详细文档

    面向对象知识点详细文档 知识点如下: 类 对象 成员属性/成员变量 成员方法 构造方法 private-私有化 封装 this-本对象 分包 static-静态的 继承 super-父类 重写 访问修饰符 ...多态 对象转型 内部类

    Java 基础核心总结 +经典算法大全.rar

    节点流和处理流 Java IO 的核心类 File Java IO 流对象 字节流对象InputStream OutputStream 字符流对象Reader Writer 字节流与字符流的转换新潮的 NIO 缓冲区(Buffer)通道(Channel) 示例:文件拷贝案例 BIO 和 NIO ...

    《UML系统分析与设计》考试模拟试卷2020.doc

    一、Java中什么是上转型对象, 上转型对象如何体现多态?(10分) 二、UML的用户可以随意对UML进行任意形式的扩展吗?说明理由。(10分) 三、简述用例之间的包含关系和扩展关系的相同点和不同点。(10分) 四、简述...

    JAVA基础课程讲义

    JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的序列化和反序列化练习 163 JAVA.IO包相关流对象...

    AIC的Java课程1-6章

     培养和建立面向对象编程的思维方式,可以运用封装、继承和多态三大基本特性编写面向对象的程序。  理解和应用Java异常,常用类,IO,集合和多线程等开发技术。  课时安排  总学时:52学时 ...

    java基础案例与开发详解案例源码全

    5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 5.6.1 方法的定义132 5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法...

    21天学会Java之(Java SE第五篇):继承、常用的关键字、封装及权限修饰符、多态

    文章目录继承常用的关键字this关键字static关键字super关键字final关键字封装及权限修饰符封装的作用及其优点权限修饰符封装的使用细节多态多态的概念多态的使用要点对象的转型instanceof运算符类型自动提升及强制...

    JAVA软件工程师_Java入门视频教程

    课程目标 1、精通JavaEE平台开发的JAVA软件工程师,能够胜任各种行业的企业级软件开发工作;...[第78节] 1.9.1 封装、继承和多态 [第79节] 1.9.2 异常 [第80节] 1.9.3 内部类串讲 [第81节] 1.10.1职场写作力

    Java 多态的中转!!//有趣的编程故事!!

    向上转型:父类引用指向子类对象,提高了程序的扩展性。 向下转型:父类引用转为子类对象,可以访问子类的特有功能(新增方法)。 代码: class 张三爹{ int age = 45; public void teach(){ System.out.println...

    java范例开发大全源代码

     第3篇 Java面向对象编程  第8章 面向对象(教学视频:72分钟) 226  8.1 类 226  实例148 简单的通讯录类 226  实例149 简单的长度单位转换类 227  实例150 卡车和卡车司机之间的关系 229  实例...

    java范例开发大全

    第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 226 实例149 简单的长度单位转换类 227 实例150 卡车和卡车司机之间的关系 229 实例151 双色球 231 8.2 成员...

    Java范例开发大全 (源程序)

     第3篇 Java面向对象编程  第8章 面向对象(教学视频:72分钟) 226  8.1 类 226  实例148 简单的通讯录类 226  实例149 简单的长度单位转换类 227  实例150 卡车和卡车司机之间的关系 229  实例151 ...

    【04-面向对象(上)】

    •Java 里允许局部变量和成员变量重名。这样局部变量会覆盖成员变量,这时通过this 来调用实例的属性. 成员变量的初始化 •当类被加载时,类成员就在内存中分配了一块空间。 •当对象被创建时,实例成员就在...

Global site tag (gtag.js) - Google Analytics