父类和子类的实例问题

我为JAVA狂 2012-06-20 08:15:17
如果一个父类只扩展了一个子类,比如Circle extends Shape,就是说只用了Circle来继承Shape,没有用其他。我知道凡是Circle的实例都是Shape的实例,那在这里的话Shape的实例一定是Circle的实例吗?如果不是,为什么?
...全文
190 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
桔子酸了 2012-06-20
  • 打赏
  • 举报
回复
楼主的说法好像出发点就有问题。
父类的实例就是父类的实例 子类的实例也就是子类自己的实例

只不过 父类对象可以指向子类实例的引用 反之不行。

xlhb 2012-06-20
  • 打赏
  • 举报
回复
不一定,父类可以自己有自己的实例,比如Shape shape = new Shape();
就算Shape 是抽象类,那也可以通过匿名的内部类来构造Shape 的实例
例如 Shape shape = new Shape(){
里面有Shape没有实现的方法
}
悠忧虫 2012-06-20
  • 打赏
  • 举报
回复

class Animal {

public boolean isAnimal() {
System.out.println("animal");
return true;
}

public boolean isTiger() {
System.out.println("not tiger");
return false;
}

}

class Tiger extends Animal {

@Override
public boolean isTiger() {
System.out.println("tiger");
return true;
}

}

public class Main {
public static void main(String[] args) {
Animal animal1 = new Animal();
Animal animal2 = new Tiger();
System.out.println("animal1 instanceof Animal?");
animal1.isAnimal();
System.out.println("\nanimal1 instanceof Tiger");
animal1.isTiger();
System.out.println("\nanimal2 instanceof Animal?");
animal2.isAnimal();
System.out.println("\nanimal2 instanceof Tiger?");
animal2.isTiger();

}
}
金兄 2012-06-20
  • 打赏
  • 举报
回复
说实话,我还连问题都没明白
qybao 2012-06-20
  • 打赏
  • 举报
回复
1L已经说了,可以有匿名类

动物 a = new 人("张三"); //这样是创建唯一继承的子类人的对象

动物 b = new 动物() { //这样是创建匿名的子类对象
{System.out.println("怪兽");}
};


那么除了有唯一继承的子类人对象,还有匿名对象
我为JAVA狂 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

不一定,父类可以自己有自己的实例,比如Shape shape = new Shape();
就算Shape 是抽象类,那也可以通过匿名的内部类来构造Shape 的实例
例如 Shape shape = new Shape(){
里面有Shape没有实现的方法
}
[/Quote]

好的,先谢谢。假如拿三楼的例子来说,父类是动物,而唯一继承的子类是人,那么父类自己的实例对象是什么?能举个例子吗?谢谢
我为JAVA狂 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

举个例子,人是动物的子类,张三是人的一个对象,那么张三也是动物的一个对象,而老虎是动物的对象,但老虎并不是人的对象
[/Quote]

我还是有个问题不明白,就是如果人是动物的子类,那么如果我对动物这个父类只扩展一个子类(人),那么会如何?就仅仅是拿这两个类来说,动物的实例对象一定是人的实例对象吗?
qybao 2012-06-20
  • 打赏
  • 举报
回复
举个例子,人是动物的子类,张三是人的一个对象,那么张三也是动物的一个对象,而老虎是动物的对象,但老虎并不是人的对象
qybao 2012-06-20
  • 打赏
  • 举报
回复
不一定
子类对象一定是父类的对象,但是父类的对象不一定是子类的对象,所以向上转换不会出错,向下转换有可能出错

淡定的峰哥 2012-06-20
  • 打赏
  • 举报
回复
不一定,父类可以自己有自己的实例,比如Shape shape = new Shape();
就算Shape 是抽象类,那也可以通过匿名的内部类来构造Shape 的实例
例如 Shape shape = new Shape(){
里面有Shape没有实现的方法
}
内容概要:本文针对低温环境下微电网运行中电池寿命损耗加剧的问题,提出了一种考虑电池寿命的优化调度模型,并通过Matlab代码实现仿真验证。研究聚焦于低温导致电池性能下降、循环寿命缩短的技术挑战,结合分布式能源出力波动性与负荷需求变化,构建了融合经济性、可靠性与电池健康状态的多目标优化调度框架。通过引入电池老化成本模型,将寿命损耗量化为可调度变量,优化充放电策略以延长电池使用寿命并降低系统综合运行成本。文中详细阐述了目标函数设计、约束条件设定及求解方法,并通过算例分析验证了该策略在抑制深度充放电、均衡电池组使用、提升系统经济性等方面的有效性。; 适合人群:具备电力系统、新能源或优化算法基础知识的研究生、科研人员及从事微电网、储能系统相关工作的工程技术人员。; 使用场景及目标:①应用于高寒地区或冬季低温场景下的微电网能量管理系统设计;②为研究电池寿命与系统经济性之间的权衡关系提供建模思路;③作为Matlab优化工具箱(如Yalmip、CPLEX)在电力系统调度中应用的学习案例; 阅读建议:读者可结合文中提供的Matlab代码,复现仿真结果,深入理解电池老化模型与优化调度的耦合机制,并尝试在此基础上引入更多不确定性因素(如电价波动、负荷预测误差)进行扩展研究。
【电动汽车响应率】考虑的是针对电动汽车充放电调度问题,由于放电奖励不同导致部分车主不愿参与放电,设计出响应率计算方法(Matlab代码实现)内容概要:本文针对电动汽车充放电调度问题,由于放电奖励不同导致部分车主不愿参与放电的现象,提出了一种响应率计算方法,并通过Matlab代码实现。该方法旨在量化车主对放电调度指令的响应意愿,为优化调度策略提供数据支持。文中详细阐述了响应率模型的构建原理、关键构成要素及验证方法,并探讨了其在调度优化和激励机制设计中的应用前景。通过设置不同响应率水平(如36%、50%、80%、100%)进行仿真分析,评估其对系统运行效果的影响,从而为提升电动汽车参与度提供理论依据和技术手段。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的科研人员、研究生及从事新能源汽车与电网互动领域的工程技术人员。; 使用场景及目标:①用于研究电动汽车用户行为建模与响应特性分析;②支撑含高比例电动汽车的微电网或主动配电网优化调度研究;③辅助设计合理的充放电价激励机制以提高用户参与度;④为需求响应项目的可行性评估与效果预测提供工具支持。; 阅读建议:建议读者结合文中提供的Matlab代码,深入理解响应率计算逻辑与实现细节,重点关注不同参数设置对响应率结果的影响,并尝试将其集成到更复杂的电力系统优化模型中进行扩展研究。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧