interface Bouncable{ }
interface Colorable extends Bouncable{ }
class Super implements Colorable{ }
class Sub extends Super implements Colorable {} // Ok (case -1)
Run Code Online (Sandbox Code Playgroud)
但,
class Sub implements Colorable extends Super {} // error (case -2)
Run Code Online (Sandbox Code Playgroud)
为什么case-2显示编译错误{ expected
.为什么?虽然,case-1执行没有错误.
strictfp修饰符的作用是使接口声明中的所有float或double表达式都是显式FP-strict(第15.4节).
这意味着在接口中声明的所有嵌套类型都是隐式strictfp.
strictfp修饰符的作用是使接口声明中的所有float或double表达式都是显式FP-strict(第15.4节).
这意味着在接口中声明的所有方法以及在接口中声明的所有嵌套类型都是隐式strictfp.
从这两段开始,没有任何迹象表明strictfp
在实现/扩展使用strictfp
修饰符声明的接口/类时的行为.
在搜索之后,我找到了strictfp
关键字用法的一个很好的解释使用strictfp修饰符来实现跨平台的浮点计算一致性,并指定:
扩展FP严格超类的子类不会继承严格的行为.当重写方法不是时,重写方法可以独立地选择FP-strict,反之亦然.
我strictfp
在扩展使用strictfp
关键字声明的类时测试了关键字的行为,这是正确的:strictfp
行为不是由扩展类的类继承的,但问题是在实现用strictfp
关键字声明的接口时它是不正确的:strictfp
行为不是由实现的类继承的界面.
任何人都可以解释我strictfp
实现/扩展使用strictfp
修饰符声明的接口/类的正确行为吗?
=== Base.php ===
<?php
class Base
{
public static function e()
{
static $number = 0;
$number++;
var_dump($number);
}
}
Run Code Online (Sandbox Code Playgroud)
=== A.php ===
<?php
class A extends Base {}
Run Code Online (Sandbox Code Playgroud)
=== B.php ===
<?php
class B extends Base {}
Run Code Online (Sandbox Code Playgroud)
=== test.php ===
function __autoload($classname)
{
require_once("{$classname}.php");
}
Base::e();
A::e();
B::e();
Run Code Online (Sandbox Code Playgroud)
php test.php,结果是:
int(1)
int(2)
int(2)
Run Code Online (Sandbox Code Playgroud)
结果为什么不是1,1,1?
我收到错误:
Uncaught TypeError: Cannot read property 'constructor' of undefined
Run Code Online (Sandbox Code Playgroud)
声明以下类时:
class ViewHelpers extends Backbone.Events
Run Code Online (Sandbox Code Playgroud)
我可以使用相同的语法来扩展Backbone.Router,Views,Model等.这是我在快速日志中编写的已编译的javascript,以确保Backbone.Events在那里
__t('views').ViewHelpers = (function(_super) {
#how i know it is definied here
console.log(_super.trigger)
__extends(ViewHelpers, _super);
function ViewHelpers() {
return ViewHelpers.__super__.constructor.apply(this, arguments);
}
return ViewHelpers;
})(Backbone.Events);
Run Code Online (Sandbox Code Playgroud)
因此引起错误的行是
ViewHelpers.__super__.constructor.apply(this, arguments);
Run Code Online (Sandbox Code Playgroud)
__extends()方法有什么不同,它适用于Backbone.View而不是Backbone.Events?
我们正在将旧的基于xml的配置转换为基于注释的配置
情况
有一个类被注释为@Embeddable(ParentPk.java)
,另一个类扩展了这个类 @Embeddable(ChildPk.java)
,这个ChildPk.java被用作复合主键SomeOwnerClass.java
,它与另一个类有外来关系,SomeChildTable.java
并倾向于使用父类中可用的属性col1和col2的 ChildPk.java
,但在执行查询Hibernate没有发现COL1和COL2,而如果我复制COL1和COL2在ChildPk.java
从父类中的每一件事工作正常.
下面是代码片段,SomeOwnerClass.java
它引用了col1和col2
> @OneToMany(orphanRemoval = true, fetch=FetchType.EAGER)
> @Cascade(value = {CascadeType.ALL,CascadeType.SAVE_UPDATE})
> @Fetch(FetchMode.JOIN)
> @JoinColumns({
> @JoinColumn(name="COL_1",insertable=false,updatable=false,referencedColumnName="COL_1"),
> @JoinColumn(name="COL_2",insertable=false,updatable=false,referencedColumnName="COL_2"),
> @JoinColumn(name="COL_3",insertable=false,updatable=false,referencedColumnName="COL_3"),
> }) private Set<SomeChildTable> collection = new
> HashSet<SomeChildTable>();
Run Code Online (Sandbox Code Playgroud)
针对这种情况的解决方案?
ParentPk.java
@Embeddable
public class ParentPk implements Serializable {
@Column(name="COL_1")
private String col1;
@Column(ame="COL_2")
private String col2;
}
Run Code Online (Sandbox Code Playgroud)
ChildPk.java …
我有2节课:
class animal{
public function walk(){
walk;
}
}
class human extends animal{
public function walk(){
with2legs;
}
}
Run Code Online (Sandbox Code Playgroud)
这样,如果我调用human-> walk(),它只运行2legs;
但我希望父母的行走; 太.
我知道我可以这样修改它:
class human extends animal{
public function walk(){
parent::walk();
with2legs;
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是,我有很多子类,我不想把parent :: walk(); 每个孩子走路().有没有办法扩展我扩展类的方法?没有覆盖但真正扩展方法.还是有更好的选择吗?
谢谢.
在java中,假设我有以下类:
public class A{
protected class B{
}
}
Run Code Online (Sandbox Code Playgroud)
我可以通过以下方式扩展内部类吗?
public class C extends A{
protected class D extends B{
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是我有上面的C类,我需要在A的内部类中进行更改,所以我认为我需要扩展内部类来这样做,但我不确定如何做到这一点.
我面临的问题是,我不确定如何在没有框架或模板引擎的情况下开发.我开始编码,现在我想去基础.
我曾经使用过这个MVC架构,使用Codeigniter和Smarty作为模板引擎.我现在要做的是使用原始的PHP而不提及这两种工具.
我不知道如何"复制"Smarty的"块"和"扩展"的概念.
我曾经定义了一个base.tpl文件,它有html头,只有body标签,以及基本css和js文件(在网站的每个页面中总是使用的文件),如下所示:(片段)
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title>Dashboard</title>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport" />
<meta content="" name="description" />
<meta content="" name="author" />
<!-- ================== BEGIN BASE CSS STYLE ================== -->
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
<link href="{site_url()}assets/css/animate.min.css" rel="stylesheet" />
<!-- ================== END BASE CSS STYLE ================== -->
<!-- ================== BEGIN PAGE LEVEL CSS STYLE ================== -->
{block name='custom_css'}{/block}
<!-- ================== END PAGE LEVEL CSS STYLE ================== -->
<!-- ================== BEGIN BASE JS ================== -->
<script src="{site_url()}assets/plugins/pace/pace.min.js"></script>
<!-- ================== …
Run Code Online (Sandbox Code Playgroud) 假设定义了以下类型:
interface Shape {
color: string;
}
Run Code Online (Sandbox Code Playgroud)
现在,请考虑以下方法为此类型添加其他属性:
延期
interface Square extends Shape {
sideLength: number;
}
Run Code Online (Sandbox Code Playgroud)
路口
type Square = Shape & {
sideLength: number;
}
Run Code Online (Sandbox Code Playgroud)
两种方法有什么区别?
而且,为了完整性和出于好奇,有没有其他方法可以产生可比较的结果?
我和我的朋友正在争吵.在我目前的Django项目中,我创建了一个名为menu.html的文件,该文件将包含一系列配置并格式化为列表的链接.我现在使用以下Django/Python代码包含菜单,而不是手动将菜单硬编码到每个页面中:
{% include 'menu.html' %}
Run Code Online (Sandbox Code Playgroud)
但是,我的朋友建议这是不正确的方法.他说我需要使用extends而不是include然后定义内容,如下所示:
{% extend 'menu.html' %}
{% block content %}
The rest of my content here.
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
这是一些额外的代码.我使用哪个真的很重要?我更愿意使用前者.
extends ×10
java ×3
php ×3
implements ×2
include ×2
inheritance ×2
autoload ×1
backbone.js ×1
class ×1
coffeescript ×1
django ×1
embeddable ×1
function ×1
hibernate ×1
html ×1
intersection ×1
oop ×1
smarty ×1
static ×1
strictfp ×1
types ×1
typescript ×1