问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#或java里子类对象赋值给父类有什么用,举几个例子啊。

发布网友 发布时间:2022-05-16 17:33

我来回答

2个回答

热心网友 时间:2023-08-22 14:57

里氏替换原则:

定义一:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
定义二:所有引用基类的地方必须能透明地使用其子类的对象。

大概的要求是:

1、父类对象指向子类实例,向上转型和向下转型是里氏替换的一种应用。

2、子类必须完全实现父类的方法,父类对象出现的地方都可以用子类对象进行替换。

这是里氏替换的主要内涵,下面对这两种体现分别进行代码举例。

定义一个抽象类Person:

public abstract class Person{

public abstract String getDetails();

}

用Student类来继承Person

public class Student extends Person{

private String stuName;

private int age;

private double score;

public Student() {

super();

// TODO Auto-generated constructor stub

}

public Student(String stuName, int age, double score) {

super();

this.stuName = stuName;

this.age = age;

this.score = score;

}

@Override

public String getDetails() {

// TODO Auto-generated method stub

return this.stuName + this.age + this.score;

}
}

在Test类里面可以用:

Person person = new Student();//这是向上转型。

也可以定义:

Student student = new Student(“stu”,19,99);

可以将student对象用在所有应该使用Person类型的地方。

Private List<Person> person = new ArrayList<Person>();

Person.add(student);

热心网友 时间:2023-08-22 14:58

举个例子:
你第一天去学校上课,假如其他同学你都不认识,你知不知道别的同学会些什么?(可能你同桌会弹吉他,你前面的同学很会唱歌),这些在你和他们第一次见面的时候你是不知道。老师也不知道,老师想要某一个学生站起来回答问题,老师知道不管是哪个学生都会双腿站起来,都会说中国话(当然这是在班级里没有残疾人的情况下),知道这两点老师就可以叫某个学生起来回答问题了,对吧。
在这个例子里,会说中国话就代表你的PersonSay()方法,老师就是使用你这个方法的人,那么老师还需不需要知道具体是哪个学生了?不需要了,可以随意点名,因为这个班级里都是人类,都会站起来说中国话。这样我就可以用父类的引用指向子类的对象了。也就是Person p = new Student();

但是,如果下一节课是音乐课,音乐老师要找一位同学起来唱歌,一位同学用吉他来伴奏,这时候就不能像上面的老师那样随便点名了,就要找你同桌上去弹吉他,你前面的同学上去唱歌,因为就他俩会这个。但是他俩也一样会站起来说中国话;这时候就可以Student s=(Student )p;后面我还要用到,s.song()唱歌的方法,这时候就没办法用p.song了,因为不是每个同学都会唱歌

这个牵扯到很多东西,包括向上转型(自动类型转化),继承,多态。为多种设置模式服务(比如如工厂模式,代理模式),还有反射机制。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
工会主席权限 魅族坏了怎么办 网上买的魅族手机坏了可以保修吗?自己弄坏的,手机花屏,修要多少钱... 从梁溪路公益路公交站到建筑路夏联福记酒店坐什么公交最方便? 退货保和运费险有什么不同 现代Logo设计趋势是什么 优秀的logo设计有什么特征? 哪些品牌的鱼竿质量好 光威悟法师和达瓦一击哪个好 有人了解大卫地板吗?怎么样呢? 新手学Java 看到教材书上讲的Java接口 感觉接口是个画蛇添足的东西 我是一在校大学生,想自学编程,我应该学什么呢?C ,C++ 还是JAVA? 请问计算机专业人士,我大二开了面向对象,也就是C++ ,可是我自学了Java,有人说要专一门,二者冲突吗? 有那些好的钢琴曲可以消除郁闷心情 谷歌吉他的hey jude 按键谁知道? 求一款JAVA能用的吉他调音软件 脚板又肥又厚还很短穿什么样的高跟鞋好看点? 羽绒服填充物? PLAYBOY与placeboy的商标图案有什么区别? 数码相机颜色差如何校正 为什么影响景观的是流水? 小假山流水放哪个方向招财 小院子流水景观好不好 boy字母蜘蛛图案是什么牌子的羽绒服啊 学开叉车!要多少钱?多久?如题 谢谢了 运行内存最大的赛车游戏是? 哪里可以查询到社区工作者考试成绩 晚上喝牛奶加蜂蜜会不会发胖?? 在众多QQ游戏中,那一款游戏需占用内存最高,最大,而且游戏比较好玩! 建筑施工企业主要负责人安全生产考核合格证书 考试 Java 到底是培训好还是自学好? 在java环境下做一个21扑克牌游戏设计 红心猕猴桃属于热性还是凉性 华为战略预备役里面的名称 上海黄陵路二百弄,到天国公墓怎么走? 请问,黄陵路200弄新黄小区,到天国公墓怎么走? 上海普陀区黄陵路200弄34号邮编多少 机器人能帮助我们做饭洗衣服英语 从上海普陀区黄陵路200弄到上海宝山区大康路891弄怎么走 为啥世界上会有洗衣机吹风机扫地机器人呢? 家住在志丹路155号是属于哪个街道居委会的啊? 最近对智能家居比较感兴趣,可以自动做饭洗衣服之类的。有没有什么好的智能家居产品,值得买来尝试的? 上海哪里可以学参加高考的美术, 从黄陵路151弄17号到徐汇区平福路218号怎么走? 黄陵怎么样?好不好?值不值得买? 求图片中机器人形象的出处。 家务机器人日记50字 生命是什么 作文教学课堂 实录 如何设计小组合作学习 生命生命 如何口才练习