package test;

public class Car {
private int carMoney; //汽车租金
private String carName; //汽车名字
private int carNumb; //汽车序列号
private int carryNum; //载货量
private int passengerNum;//载客人数 public Car(int carNumb,String carName,int carMoney,int passengerNum,int carryNum){
this.carMoney = carMoney;
this.carName = carName;
this.carNumb = carNumb;
this.carryNum = carryNum;
this.passengerNum = passengerNum;
}
public int getCarMoney() {
return carMoney;
}
public void setCarMoney(int carMoney) {
this.carMoney = carMoney;
}
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public int getCarNumb() {
return carNumb;
}
public void setCarNumb(int carNumb) {
this.carNumb = carNumb;
}
public int getCarryNum() {
return carryNum;
}
public void setCarryNum(int carryNum) {
this.carryNum = carryNum;
}
public int getPassengerNum() {
return passengerNum;
}
public void setPassengerNum(int passengerNum) {
this.passengerNum = passengerNum;
} public void showInfo() {
// TODO Auto-generated method stub
} public static void main(String[] args){
Car as=new Car(0,"sende",200000,23,32);
System.out.println(as.carMoney);
/**
*
* 子类可以继承父类的变量
* ①子类和父类在同一个包中时,子类可以继承父类的除private属性的所有方法和成员变量,当子类与父类不在同一个包中时,子类只能继承父类的protected和public属性的成员变量和方法。
* ②子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量;子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同,子类就隐藏从父类继承来的方法(方法的重写)。
* ③在子类中允许有一个方法和父类的方法名字相同而类型不同。
*
* 在这个测试类中可以看到,可以直接使用类对象获取父类中的属性,即使该属性是私有属性,而使用其子类的对象获取对应属性,却无法使用对象名.属性,
* 只能通过公有的get方法获取属性,可以看出在子类的构造方法中的该 变量不是子类的,而是父类的,super关键字的作用是调用父类的构造方法,且必须
* 放在构造器的首行
* this和super分为调用和引用。只可以引用父类构造器,不可以调用。引用只可以出现在构造器的第一行。
* super引用的是父类的构造方法而不是父类的属性,如果将父类的构造方法变为私有你就可以发现子类的使用super的构造出错了。因为super调用的使父类
* 的构造方法,所以在走父类构造器中的this代表的是父类,赋值给的属性也是父类的,这里子类中继承的感觉是父类属性的一个映射,因为它受到父类中的修饰
* 词的影响,不完全属于子类
* 不知道正确不正确,我的看法,欢迎指出问题,谢谢
*/
Sedan sd=new Sedan(0,"sende",200000,23,32);
System.out.println(sd.getCarNumb()); }
} class Sedan extends Car{
public Sedan(int carNumb,String carName,int carMoney,int passengerNum,int carryNum){
super(carNumb,carName,carMoney,passengerNum,carryNum);
}
} class Pickup extends Car{
public Pickup(int carNumb,String carName,int carMoney,int passengerNum,int carryNum){
super(carNumb,carName,carMoney,passengerNum,carryNum);
}
}

关于父类私有属性在子类构造函数中super调用的解释的更多相关文章

  1. 尝试解决在构造函数中同步调用Dns.GetHostAddressesAsync()引起的线程死锁

    (最终采用的是方法4) 问题详情见:.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长 看看在 Linux 与 Windows 上发生线程死锁的后果. Linux: Microsoft ...

  2. C++构造函数中不能调用虚函数

    在构造函数中调用虚函数,并不会产生多态的效果,就跟普通函数一样. c++ primer 第四版中497页15.4.5构造函数和析构中的虚函数讲到,如果在构造函数或析构函数中调用虚函数,则运行的是为构造 ...

  3. python语言中多继承中super调用所有父类的方法以及要用到的MRO顺序

    在python多继承中,利用super().父类方法,可以调用所有父类,从而在重写的状态下,再次对所有父类的调用! 例: print("******多继承使用super().__init__ ...

  4. Java中子类能继承父类的私有属性吗?

    前段时间去听老师讲课的时候,老师告诉我子类是可以继承父类所有的属性和方法的.当时我是极其疑惑的,因为之前学校考试时这个考点我记得很清楚:子类只能继承父类的非私有属性和方法.老师给我的解释是这样的--先 ...

  5. [Effective JavaScript 笔记]第38条:在子类的构造函数中调用父类的构造函数

    示例 场景类 场景图(scene)是在可视化的过程中(如游戏或图形仿真场景)描述一个场景的对象集合.一个简单的场景包含了在该场景中的所有对象(称角色),以及所有角色的预加载图像数据集,还包含一个底层图 ...

  6. PHP中的__get()和__set()方法获取设置私有属性

    在类的封装中,获取属性可以自定义getXXX()和setXXX()方法,当一个类中有多个属性时,使用这种方式就会很麻烦.为此PHP5中预定义了__get()和__set()方法,其中__get()方法 ...

  7. java代码---继承-子类使用继承父类的属性。理解测试

    总结:对于继承.如果父类有的成员变量而子类没有,那么子类的成员变量赋值是来自于父类的,当在子类构造方法赋值时,它和父类的成员变量值是一样的 当成员变量在父类和子类中都存在时,父类用父类的属性,子类用子 ...

  8. python 类中的公有属性 私有属性 实例属性

    class parent(): i=1 __j=2 class child(parent): m=3 __n=4 def __init__(self,age,name): self.age=age s ...

  9. JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

随机推荐

  1. android的selector选择器

    1. drawable/actionbar_compat_item.xml 2.drawable/actionbar_compat_item_pressed.xml 3.drawable/action ...

  2. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  3. React Native入门-刘望舒

    React Native入门(一)环境搭建与Hello World React Native入门(二)Atom+Nuclide安装.配置与调试 React Native入门(三)组件的Props(属性 ...

  4. 驼峰命名和下划线命名互转php实现

    驼峰命名和下划线命名经常需要互转,下面提供两种php的实现方式.第一种方法效率相对差一些,实现方式如下: //驼峰命名转下划线命名 function toUnderScore($str) { $dst ...

  5. PhotoSwipe中文API(四)

    在幻灯片自定义HTML内容 为了使PhotoSwipe显示HTML内容的幻灯片,你需要在幻灯片对象定义html属性.它应该包含HTML字符串或DOM元素对象. var items = [ // sli ...

  6. 一个简单的3D范例,是在别人基础上面整理的。

    一个简单的范例,是在别人基础上面整理的.原来的例子,框图太乱了,没有条理感. http://pan.baidu.com/s/1eQTyGCE

  7. Kylo 入坑记

    一.概述 Kylo,作为一个基于 Spark 和 NiFi 的开源数据湖编排框架,解决对数据湖获取.治理.感知和技术支持等诸多问题.Kylo 将数据湖的很多功能自动化,包括数据接入.准备.分析发现.P ...

  8. Flask添加翻页功能(非sqlalchemy)

    最近做flask的项目,需要增加翻页的功能,网上找的教程都是结合sqlalchemy的,可是我用的不是sqlalchemy,肿木办呢? 以下是我的做法 一.前端 1.传递页码 前端我使用ajax提交表 ...

  9. Javaworkers团队第四周项目总结

    本周项目进展 本周是我们的项目开发的第四周,在之前的一周,我们小组在合作的情况下基本完成了项目代码的框架编写,我们组的项目课题,小游戏--贪吃蛇以及可以运行,可以进行简单的游戏,但是我们在思考之后发现 ...

  10. Redis之数据备份与恢复

    Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 re ...