我只是从一个例子开始,最好的解释: public abstract class A{ static String str; } public class B extends A{ public B(){ str = "123"; } } public class C extends A{ public C(){ str = "abc"; } } public class Main{ public static void main(String[] args){ A b = new B(); A c = new C(); System.out.println("b.str = " + […]
众所周知,一些语言有接口的概念。 这是Java: public interface Testable { void test(); } 我怎样才能以最紧凑的方式在C ++(或C ++ 11)中实现这一点,而且代码噪声很小? 我将不胜感激一个解决scheme,不需要一个单独的定义(让头是足够的)。 这是一个非常简单的方法,即使我find越野车;-) class Testable { public: virtual void test() = 0; protected: Testable(); Testable(const Testable& that); Testable& operator= (const Testable& that); virtual ~Testable(); } 这只是一个开始,而且已经更长了,我想要的。 如何改善? 也许在这个std命名空间的某个地方有一个基类呢?
我有一个定义抽象方法的抽象类A. 这意味着,对于一个class级来说,这个抽象的方法必须得到执行。 我想我所有的子类实现一个2 int作为参数的构造函数。 声明一个构造函数会破坏我的目的,因为我想在子类中定义构造函数,而且我不知道任何有关实现的信息。 而且我不能声明构造函数是抽象的; 有没有办法做到这一点 ? 我想要的例子: 假设我正在定义Matrix类的API。 在我的问题,matrix不能改变他们的尺寸。 要创buildmatrix,我需要提供它的大小。 因此,我希望我的所有实现者都能提供构造函数的大小作为参数。 这个构造函数是由问题驱动的,而不是由于实现问题。 只要方法的所有语义都保持不变,实现可以用它们做任何事情。 假设我想提供我的抽象类中的invert()方法的基本实现。 这种方法将创build一个新的matrix与this倒转的维度。 更具体地说,就像在抽象类中定义的那样,它将使用一个带有两个整数的构造函数创build一个与此相同类的新实例。 因为它不知道实例将使用reflection(getDefinedConstructor),我想要一个保证,我会得到它的方式,这将是有意义的实现。
今天我正在用ui-router来摆弄一下,试图更好地理解Ionic中的脚手架,而我注意到的一件事情是,他们给了“制表符”一个url的抽象状态。 我曾经使用抽象状态的唯一情况是,我使用了一个空string作为url,并且我注意到,如果我偶然尝试导航到一个抽象状态(而不是子状态),我得到错误: 无法过渡到抽象状态'[insertAbstractStateHere]' 编辑: “而且,在试验中,当我尝试给我的抽象状态(Ionic之外)分配一个url并且仍然呈现嵌套的状态视图时,我得到一个巨大的鹅蛋,根本没有任何显示。 以上引用的声明是错误的! 我在Plunker再次尝试,并且嵌套状态显示出来。 angular.module('routingExperiments', ['ui.router']) .config(function($urlRouterProvider, $stateProvider) { $stateProvider .state('abstractExperiment', { abstract: true, url: '', //<— seems as if any string can go here. templateUrl: 'abstractExperiment.html' }) .state('abstractExperiment.test1', { url: '/test1', templateUrl: 'abstractTest1.html' }); }); 显然我确实做错了。 所以我的新问题是: 为什么在抽象状态中使用命名状态而不是空string,还是仅仅是一种样式select?
问候 当为财产/领域/方法等设置摘要是否有可能有一个换行符? /// <summary> /// This is line 1 /// This is line 2 /// </summary> public bool TestLine { get; set; } 当我设置它显示为在鼠标上: bool TestLine This is line 1 This is line 2 但我希望它显示为: bool TestLine This is line 1 This is line 2 我已经尝试使用\n但是这不起作用。 有没有办法做到这一点?
如何在Rails 3.0中使用MD5encryptionstring? pass = MD5.hexdigest(pass)在模型中产生uninitialized constant MyModel::MD5
我可以在不添加抽象方法的情况下定义抽象类吗?
为什么Java类不能像抽象方法那样具有抽象字段? 例如:我有两个类扩展相同的抽象基类。 这两个类每个都有一个相同的方法,除了一个String常量,它们恰好是一个错误信息。 如果字段可能是抽象的,我可以使这个不变的抽象,并将方法拉入基类。 相反,我必须创build一个抽象方法,在这种情况下称为getErrMsg() ,它返回String,在两个派生类中重写此方法,然后可以调用抽象方法(现在称为抽象方法)。 为什么我不能把这个领域的摘要作为开始? Java可以devise成允许这个吗?
我写了一个简单的Java类来生成Windows计算器文件的哈希值。 我正在使用Windows 7 Professional with SP1 。 我已经尝试过Java 6.0.29和Java 7.0.03 。 有人可以告诉我为什么我从Java与(很多!)外部实用程序和/或网站获得不同的哈希值? 一切外部匹配,只有Java返回不同的结果。 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; import java.util.zip.CRC32; import java.security.DigestInputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Checksum { private static int size = 65536; private static File calc = new File("C:/Windows/system32/calc.exe"); /* C:\Windows\System32\calc.exe (verified […]
面试官问 – 我们可以实例化一个抽象类吗? 我说,不,他告诉我 – 错了,我们可以。 我在这方面辩论了一下。 然后他让我在你家里试试这个。 abstract class my { public void mymethod() { System.out.print("Abstract"); } } class poly { public static void main(String a[]) { my m = new my() {}; m.mymethod(); } } 在这里,我正在创build我的类的实例并调用抽象类的方法。 任何人都可以向我解释这个吗? 在面试中我真的错了吗?