A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© FlyTrem 中级黑马   /  2014-3-26 15:26  /  1616 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 FlyTrem 于 2014-3-26 21:42 编辑

父类类型的变量不能用来调用子类特有的方法。必须强转为子类类型变量后,才能直接调用子类特有的方法。
父类转化为子类的类型变量,那么方法调用后,变量赋值是属于子类类型,那么是要对父类类型的成员进行赋值的,是否要强转回父类类型?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览

父类类型的变量不能用来调用子类特有的方法。
必须强转为子类类型变量后,才能直接调用子类特有的方法。

父类转化为子类的类型变量,那么方法调用后,变量赋值是属于子类类型,

要对父类类型的成员进行赋值的,

不需要要强转回父类类型---------------因为既然是继承父类,,,子类可以直接用父类的成员。。。不需要在强转转。。

什么叫强转??---是父类转子类才用到。。。。子类提升,,根本不需要强转的。。。


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
父类强转为子类,调用子类方法
那你肯定已经创建了一个父类对象咯
那你再给父类的变量赋值啊什么的就直接调用你创建的父类对象不久ok了么
不用再转回来了:lol
  1. package test;

  2. public class FatherClass {
  3.         private int father_int;
  4.         public void method_father(){
  5.                 System.err.println("调用了FatherClass的method1方法");
  6.         }
  7.         public static void main(String[] args) {
  8.                 FatherClass father=new FatherClass();
  9.                 SonClass son=(SonClass)father;
  10.                 son.method_son();//子类方法
  11.                 father.setFather_int(1);
  12.         }
  13.         public int getFather_int() {
  14.                 return father_int;
  15.         }
  16.         public void setFather_int(int father_int) {
  17.                 this.father_int = father_int;
  18.         }
  19.        
  20. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
awkflf11 发表于 2014-3-26 15:46
父类类型的变量不能用来调用子类特有的方法。
必须强转为子类类型变量后,才能直接调用子类特有的方法。

噢噢噢噢噢噢,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马