继承-关于父类中private的数据

问题描述

关于父类中private的数据

父类中private的成员方法,在子类中无法重写要怎样理解哦~

解决方案

访问权限为private 的方法是无法被重写的 举个列子

你找你爸要生活费

父亲持有生活费这个变量
关系是私有
子类不能重写,因为父亲不愿意
你要是直接调用父亲的钱还了得
所以父亲提供一个公开的方法,比如get,set
让你去操作
你想操作父亲的钱,必须用父亲提供的方法

解决方案二:

private是私有方法,要重写就得是public方法

解决方案三:

"在子类中可以重新写一个与父类中完相同的方法(改成public)"
此话有误。
在子类里,声明一个与父类private方法的签名相同的方法,和父类的private方法没有任何关系。
设想一下,如果你根本没有父类的代码,你怎么知道你在子类的声明的这个方法与父类的某private方法具有相同的签名。
既然你无法知道这一点,那么你这么做就和父类的private方法根本没有任何关系——它在不在那里,都影响不了子类。这就是为什么说父类的private子类不可见。

解决方案四:

protected 可以在子类修改

时间: 2024-11-08 20:26:25

继承-关于父类中private的数据的相关文章

Java 25天基础-DAY 07-面向对象-继承子父类中变量的特点-函数的另一个特性重写(覆盖)

继承: 1.提高了代码的复用性 2.让类与类之间产生了关系,有了这个关系,才有了多态的特性. 注意: 千万不要为了获取其他类的功能,简化代码而继承. 必须是类与类之间有所属关系才可以继承,所属关系is a(谁是谁的一种); java语言中,Java只支持单继承,不支持多继承. 因为多继承容易带来安全隐患:当多个父类中定义了相同的功能,当功能内容不同时,子类对象不确定要运行那一个. 但是Java保留了这种机制,并用另一种体现形式来完成表示,"多实现" Java支持的多层继承: 也就是一个

【JAVA】类继承对父类静态变量的操作

对静态变量的操作存在继承时还是有一些模糊,做了个简单的测试: class Test { private String mName; public Test(String name) { setName(name); } public void setName(String name) { mName = name; } public String getName() { System.out.println(mName); return mName; } } class A { protecte

java继承 在子类中声明同名变量的问题???

问题描述 java继承 在子类中声明同名变量的问题??? 如下代码: class Person { String name; int age; public void introduce(){ System.out.println("姓名是" + name + ",年龄是" + age); } } public class Students extends Person{ // String name; public static void main(String[

iOS中几种数据持久化方案:我要永远地记住你!

概论 所谓的持久化,就是将数据保存到硬盘中,使得在应用程序或机器重启后可以继续访问之前保存的数据.在iOS开发中,有很多数据持久化的方案,接下来我将尝试着介绍一下5种方案: plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite 3 CoreData 沙盒 在介绍各种存储方法之前,有必要说明以下沙盒机制.iOS程序默认情况下只能访问程序自己的目录,这个目录被称为"沙盒". 1.结构 既然沙盒就是一个文件夹,那就看看里面有什么吧

php类中private属性继承问题分析_php技巧

请仔细看这句话 如果父类有私有的属性.那么父类的方法只为父类的私有属性服务. 下面通过一系列列子来加深理解. 这个例子看起来很奇怪,在子类中重新定义了一个属性$sal,系统却返回了父类的属性. 复制代码 代码如下: <? class employee{ private $sal=3000; //protected $sal=3000; public function getSal(){ return $this->sal; } } class Manager extends employee

如何在.NET中处理WMI数据

如何在.NET中处理WMI数据-------------------------------------------------------------------------------- 学习当WMI属性与.NET数据类型不相符时,如何进行处理. by Ken Getz备注:在2月12日(周三)于San Francisco举办的VBITS大会上,Ken Getz发布了主题为"Fill the Gaps With WMI"和"Save Yourself With .NET

Web程序中网页间数据传递方法小结

web|程序|数据|网页 介绍 我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页.在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法.在此例子中,创建的网页由一个文本控件和几个按钮控件组成.在文本框中输入的数据通过被标识在按钮控件中的不同方法从一个网页传递到另一个网页. Response.Redirect 让我们首先看一看如何使用Response.Redirect方法传递数据.这是它们之中最简单的方法.在文本框中输入一些数据,并且当你输入完成数据后,按下"Resp

ASP.NET中实现DataGrid数据排序

asp.net|datagrid|排序|数据 Visual Studio .Net为编写WinForm程序(即:在Windows平台下运行的程序)所提供的DataGrid组件比起微软以往的各种开发环境中提供的DataGrid组件都要"高级"许多.其"高级"的地方就在于不需要再进行任何其他设置或编程,DataGrid就能够对其中的数据分别按照升.降序进行排列.这种"高级"功能给我们编程提供了许多方便.图01是在WinForm程序中的DataGrid

Java语言入门教程(七):Java类中的各种数据

本文是Java教程之Java类中的各种数据部分. 按照数据声明的位置,Java类可以分为两类,声明位置的不同,作用域就有所不同. 1.数据成员:在类体中声明的数据,称为数据成员. 2.局部变量:在方法中声明的数据,称为局部变量,也称为本地变量,方法变量,自 动变量.局部变量只能在该方法中使用. 如下例所示: package com.csst.test; public class TestData { /** * @param args */ //1.数据成员 private int x; pri