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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 15173139267 中级黑马   /  2015-10-14 22:02  /  348 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package org.newer.ThinkInJava;
class JC{
        private int id;
        private String jcName;
        public int getId() {
                return id;
        }
        public void setId(int id) {
                this.id = id;
        }
        public String getJcName() {
                return jcName;
        }
        public void setJcName(String jcName) {
                this.jcName = jcName;
        }
        public void show(){System.out.println("展示方法");};
        public void method(){System.out.println("方法的父类");};
}
class jcFixItem extends jc{
        public void method(){System.out.println("方法");};
        public void show(){System.out.println("展示方法的子类");};
}

public class ThinkInJava_caseFirst {
        /**
         * 父类和子类指向问题
         */
        public static void  main(String[] args){
                /**使用父类对象指向子类对象,调用了子类的方法,因为父类中存在show,method方法, 所以,子类中能够覆盖父类的show方法*/
                jc jcCls = new jcFixItem();
                jcCls.show();
                jcCls.method();
                //jcCls.method(); 无法编译,如果父类中不存在该方法,所以无法覆盖。
               
                /**jcClsTwo对象的引用指向jc对象 ,调用父类方法中自身的方法*/
                jc jcClsTwo = new jc();
                jcClsTwo.show();
                jcClsTwo.method();
               
                /**父类调用子类的方法无法调用*/
                //jcClsTwo.method();无法编译
                /**继承用java的面向对象去思考*/
                /**父类无法向下变成子类<网上有两种说法:
                 *        1.  子类无法向下转型 ;
                 *        2.  子类是父类,父类或许也可以是子类
                 *                        但是我实际操作,无法向下变成子类,如有好方法,请各位提点下。
                 * >*/
                //转型失败,java.lang.ClassCastException,转型失败<编译无错>
                //jcFixItem jcFixCls  = (jcFixItem) new jc();
                //jcFixCls.show();
                //jcFixCls.method();
               
                /**子类可以调用父类的方法,使用子类对象指向子类对象;如果子类中存在方法,则调用子类中存在的方法;
                 * 如果子类中不存在该方法,则调用父类中存在的该方法;如果子类中不存在,父类中不存在,更加无法编译。*/
                jcFixItem jcFixClsTwo = new jcFixItem();
                jcFixClsTwo.show();
                jcFixClsTwo.method();
        }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马