is-A继承?Has-A?
教程把is-A和Has-A放在一起,我还以为java支持简单的方法能把Has对象的方法导出呢。。
extents implements
要试一下。
不知道狗和汽车为什么总是被选出来举例。
package Language; /**
*
* 面向对象接口
* @author y
*/
public interface IFace2Object {
String getClassKey();
Boolean AllowMutilInhert();
}
package Language; /**
*
* 开发语言基类
* @author y
*/
public abstract class ProgramLanguage {
public abstract String getMyType();
}
package Language; /**
*
* C语言
* @author y
*/
public class PL_C extends ProgramLanguage { @Override
public String getMyType() {
return "C";
} }
package Language; /**
*
* @author y
*/
public class PL_Cpp extends ProgramLanguage implements IFace2Object { @Override
public String getMyType() {
return "C++";
} @Override
public String getClassKey() {
return "class";
} @Override
public Boolean AllowMutilInhert() {
return true;
} }
public class PL_Java extends ProgramLanguage implements IFace2Object {
@Override
public String getMyType() {
return "Java";
}
@Override
public String getClassKey() {
return "class";
}
@Override
public Boolean AllowMutilInhert() {
return false;
}
}
练练写法就行了,就不写测试代码了,没必要。
@Override不知道做什么用的,先看吧。难道是类似 c++11的override关键字?
Java的方法重写,不必在父类中声明,反而是只有final的方法不能被重写。
Super可以直接调用父类方法,而不必要知道父类名。这很有用。更改父类不必要搜索父类名,在C++中则很烦。
不过c++ 可以typedef BaseClassName BaseClass,来简化。
函数的重载没什么说的,我只好奇,子类重载父类中的函数时, 调用子类的父类函数接口,能否正常调用。C++是不行的,看你的了,java。
package Language; /**
*
* @author y
*/
public class PL_Cpp extends PL_C implements IFace2Object { public String getMyType(Boolean bCpp){
return bCpp ? "C++" : "C";
} @Override
public String getClassKey() {
return "class";
} @Override
public Boolean AllowMutilInhert() {
return true;
} public static void main(String[] args){
PL_Cpp tp = new PL_Cpp();
String sType = tp.getMyType();
System.out.println("Cpp Default Type = " + sType);
} }
输出:
run:
Cpp Default Type = C
成功构建 (总时间: 0 秒)
可以调用哦。
在C++中,对父类非虚函数的重载叫重写,JAVA似乎不这么叫。
JAVA中纯虚函数不能实现。
接口的继承也用extends
is-A继承?Has-A?的更多相关文章
- javaScript的原型继承与多态性
1.prototype 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉 ...
- JavaScript的继承实现方式
1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...
- javascript中的继承与深度拷贝
前言 本篇适合前端新人,下面开始...... 对于前端新手来说(比如博主),每当对js的对象做操作时,都是一种痛苦,原因就是在于对象的赋值是引用的传递,并非值的传递,虽然看上去后者赋值给了前者,他们就 ...
- 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- JS继承类相关试题
题目一: //有关于原型继承的代码如下:function Person(name) { this.name = name;}Person.prototype = { getName : f ...
- JS继承之寄生类继承
原型式继承 其原理就是借助原型,可以基于已有的对象创建新对象.节省了创建自定义类型这一步(虽然觉得这样没什么意义). 模型 function object(o){ function W(){ } W. ...
- JS继承之借用构造函数继承和组合继承
根据少一点套路,多一点真诚这个原则,继续学习. 借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术( ...
- JS继承之原型继承
许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...
- 深入浅出JavaScript之原型链&继承
Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instanc ...
- 如果你也会C#,那不妨了解下F#(7):面向对象编程之继承、接口和泛型
前言 面向对象三大基本特性:封装.继承.多态.上一篇中介绍了类的定义,下面就了解下F#中继承和多态的使用吧.
随机推荐
- Discuptor入门(二)-实例
前言:最近在项目中看到有人使用的discuptor框架,因为没有接触过所以网上找了些资料.但最终发现开荒者太少,好像没什么人用那.最后感觉还是官方入门文档靠谱点.所以自己翻译了下(翻译器~),希望能帮 ...
- Alluxio原理和应用场景随笔
上周末有幸参加了Alluxio(之前也叫Tachyon),七牛云和示说网举办的Alluxio上海Meetup,之前我并没有在真实应用场景中使用过Alluxio,对其适用的应用场景一直报怀疑态度.自信聆 ...
- STM32 HAL库学习系列第6篇---定时器TIM 级联配置
应用情景 使用定时器配置编码器模式,发现STM32只有两个定时器是32位,16位的测量值不够用,发现是可以使用两个16位定时器级联为32位的. 我是在使用编码器计数电机转速时使用,但是最终实现的效果不 ...
- jenkins+maven+docker集成java发布(二)#远程发布
jenkins+maven+docker集成java发布(一)中写了在Jenkins服务器自动部署业务,那需要将java项目部署到其他服务器怎么操作 这里需要依赖插件Publish Over SSH ...
- TCP/IP协议的数据传输过程详解——IP与以太网的包收发操作
MTU:一个网络包的最大长度,以太网中一般是1500字节:(含有头部长度,包括IP头部,TCP头部,不包括MAC头部) MSS:除去头部后,一个网络包所能容纳的TCP的数据的最大长度 下图为TCP/I ...
- UVA 514 - Rails ( 铁轨)
from my CSDN: https://blog.csdn.net/su_cicada/article/details/86939523 例题6-2 铁轨(Rails, ACM/ICPC CERC ...
- springboot 使用@ConfigurationProperties注入配置属性
导入依赖,让springboot支持@ConfigurationProperties 注解 <!-- 支持 @ConfigurationProperties 注解 --> <depe ...
- 20155202 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155202 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 使用JDK编译.运行简单的java程序 命令行下的程序开发 一(新建文件夹): 打开wi ...
- 20155322 《Java程序设计》课堂实践项目MyOD
20155322 <Java程序设计>课堂实践项目MyOD 实践要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 提交测试代码和 ...
- 20155322 2016-2017-2 《Java程序设计》第2周学习总结
20155322 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 本周按照教学安排学习教材的第三章,下面简单的概括一下我的学习总结: 第三章的主要内容是有关于 ...