java-成员变量的属性与成员函数的覆盖
java中在多态的实现是通过类的继承或者接口的实现来完成的。
在类继承或者接口实现过程中就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接覆盖父类的(继承中),但是成员变量重写是不会进行覆盖的。
举个类子:
两个类Person以及Man;
都有相同名称的属性age以及相同名称的方法say();
public class Person {
public int age;
public void say() {
System.out.println("person say...");
}
}
public class Man {
public int age;
public void say() {
System.out.println("man say...");
}
}
//测试
public class Proc {
public static void main(String[] args) {
Man man = new Man();
System.out.println("----------属性----------");
man.age = 20;
System.out.println(man.age); //20
Person person = man;
person.age = 25;
System.out.println(person.age); //25
System.out.println("----------函数----------");
Man m = new Man();
man.say(); //man say...
Person p = m;
p.say(); //man say...
}
}
通过上面的列子可以看出来,成员函数可以重写,在通过父类调用子类方法的时候调用的是重写的方法,而成员属性不可以覆盖(即使重写了,没有重写不谈);
对于这个的区分可以这样理解:
从存储角度看,属性是存储进堆中的,而方法只是在栈中暂存,不做长时间保存,执行过就释放, 因此属性不变(简单理解,详细的讲起来太乱);
转载于:https://www.cnblogs.com/husky/p/5679346.html
java-成员变量的属性与成员函数的覆盖相关推荐
- Java成员变量和属性的区别与联系
成员变量有多种访问控制符,通常都应该把成员变量定义成私有的private ,然后为该成员变量提供set方法和get方法,外界只通过set方法和get方法对成员变量进行操作,这样也体现了面向对象的三大特 ...
- 成员变量和属性区别(@property那点事儿)
历史由来: 接触iOS的人都知道,@property声明的属性默认会生成一个_类型的成员变量,同时也会生成setter/getter方法. 但这只是在iOS5之后,苹果推出的一个新机制.看老代码时, ...
- 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)
面向对象编程 1 面向对象与面向过程 1.1 java类及类的成员 2 java语言的基本元素:类和对象 2.1 类的语法格式 2.2 创建Java自定义类 2.3 对象的创建及使用 3 类的成员之一 ...
- java 反射 成员变量_Java 反射:成员变量
获取成员变量 借助Class类某些可以获取对应类中声明的成员变量实例对象,这些方法有: ⑴Field[] getFields():返回一个该Class对象表示类或接口中所有public属性(含继承的) ...
- C++定义一个Dog类,包含体重和年龄两个成员变量和相应的成员函数。
定义一个Dog类,包含体重和年龄两个成员变量和相应的成员函数. [问题描述] 定义一个Dog类,包含体重和年龄两个成员变量和相应的成员函数.声明一个实例dog1,体重为5,年龄为10,使用I/O流把d ...
- java成员变量覆盖_java-成员变量的属性与成员函数的覆盖
java中在多态的实现是通过类的继承或者接口的实现来完成的. 在类继承或者接口实现过程中就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接覆盖父类的(继承中),但是成员变量重写是 ...
- Java静态变量与静态方法与成员变量成员方法的区别
java变量分为实例变量和静态变量方法分为实例方法和静态方法 如 class Example{ int data;//定义实例变量,也叫成员变量 public void method(){ / ...
- 20、成员变量和属性
成员变量 属性 区别:类内使用成员变量,类外使用属性 属性是成员变量的外部接口,属性为了让类外可以访问成员变量 比如:姓名.年龄.性别,都是人固有的,是成员变量 再比如: People.h #impo ...
- java反射成员变量_java反射之成员变量的反射
摘要: java反射 public class ReflectTest { public static void main(String[] args) throws Exception { //成员 ...
最新文章
- 半世纪全球顶级学者迁移图(附视频、亿级学术信息)| 数据院科技大数据研究中心发布
- 再谈要不要成为全栈工程师
- python的基础命令_深度学习中python常用命令
- Create React App 2.0 华丽登场
- 南京师范大学计算机科学与技术复试名单,2018年各学院硕士研究生复试办法及复试名单公示网址汇总表...
- sql注入python_Python--sql注入
- LANC环链电动葫芦的结构设计与组成
- 马哥linux35期,马哥Linux第五周
- Ubuntu 安装显卡驱动 CUDA10 cuDNN详细教程
- 使用Python3进行身份证号码标准验证
- 细数阿里 25 个开源的前端项目
- 2022年第二十三届华东杯大学生数学建模竞赛
- 常用的php函数,PHP 常用函数汇总
- 浏览器缓存机制,强缓存,弱缓存
- html页面怎样打印二分之一,打印二分之一a4纸 大小的纸张 Word该如何设置?
- JS中数组的常用方法(concat拼接,join修改间隔符,pop移除最后一个元素,push在数组最后添加新的元素,reverse反转数组元素,shift移除第一个元素,unshift添加,spli)
- 谷歌浏览器无法记住密码问题
- InvocationException: GraphViz‘s executables not found【BUG已解决】
- vue:前端压缩图片上传
- flash播放器插件与flash播放器的区别