zoukankan      html  css  js  c++  java
  • java多态和继承

    继承定义:子类继承父类的特征和行为使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。

    多态定义看了很多,都觉得不够贴切,后来在一个同学的笔记中看到了如下的定义觉得很准确粘贴出来:

    多态定义: 多态指的是子类对象可以直接复制给父类的变量(或者子类对象指向父类的引用),但运行时依然表现出子类的行为特征 这意味着同一个类型的对象在执行同一个方法时,可能会表现出不同的行为特征

    解释:类中包含了类的行为(方法)和属性(变量),而多态只是针对类的行为特征即方法的,而不针对任何的变量。(因此下面笔试题中的  ‘System.out.println(parent.i);’输出的是引用类的成员变量0)。

    因此有如下结论:

    总结:多态指的是成员方法,对象的成员常量不具有多态性

    在一次笔试题中遇到了一个问题:问输出结果是什么。回来试了一下,但是不知道在输出结果向上转型时i的值为什么是父类变量其中的原理,高手们请指教。

    package demo.test;
    
    //父类
    class ParentClass {
        public int i = 0;
        
        public void test(){
            System.out.println("this is ParentClass");
        }
    
    }
    
    public class SubClass extends ParentClass{
        public int i = 1;
        public void test(){
            System.out.println("this is SubClass");
        }
        
        
        public static void main(String[] args) {
            SubClass     sub1     = new SubClass();
            ParentClass parent     = new SubClass();
            System.out.println(sub1.i);//1
            System.out.println(parent.i);//0
            sub1.test();//SubClass
            parent.test();//SubClass
        }
        /**
         *  1
            0
            this is SubClass
            this is SubClass
    
         */
    }

    后来在一个同学的笔记中看到了如下的定义觉得很准确粘贴出来:

    (1)多态定义: 多态指的是子类对象可以直接复制给父类的变量(或者子类对象指向父类的引用),但运行时依然表现出子类的行为特征 这意味着同一个类型的对象在执行同一个方法时,可能会表现出不同的行为特征

    总结:通过上面的示例说明:继承和多态

  • 相关阅读:
    dp,路径保存,最大公共上升子序列——ZOJ
    简单dp——HDU
    扫描线,线段树,离散化——HDU
    c++版本的opencv3.4.1里分类器输出值异常
    win10家庭版openssh连接远程服务器显示connetion reset
    生活感悟一
    Teradata简介
    kettle 无法正常启动问题
    kettle实现同构单表增量同步
    kettle数据库连接使用变量
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/4436556.html
Copyright © 2011-2022 走看看