标签: subclass

为所有UIImageViews添加圆角

我想在我的项目中为所有UIImageViews添加一些圆角.我已经有了代码工作,但我必须将它应用于每个图像; 我应该继承UIImageView来添加它吗?如果是这样,有人可以给我一些指示如何做到这一点?

这是代码

- (void)viewDidLoad {
    [super viewDidLoad];
    NSString *mainpath = [[NSBundle mainBundle] bundlePath];
    welcomeImageView.image = [UIImage imageWithContentsOfFile:[mainpath stringByAppendingString:@"/test.png"]];
    welcomeImageView.layer.cornerRadius = 9.0;
    welcomeImageView.layer.masksToBounds = YES;
    welcomeImageView.layer.borderColor = [UIColor blackColor].CGColor;
    welcomeImageView.layer.borderWidth = 3.0;
    CGRect frame = welcomeImageView.frame;
    frame.size.width = 100;
    frame.size.height = 100;
    welcomeImageView.frame = frame;
}
Run Code Online (Sandbox Code Playgroud)

code-reuse subclass ios objective-c-category

78
推荐指数
4
解决办法
6万
查看次数

从超类中获取子类的名称

假设我有一个名为的基类Entity.在那个类中,我有一个静态方法来检索类名:

class Entity {
    public static String getClass() {
        return Entity.class.getClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我有另一个类扩展.

class User extends Entity {
}
Run Code Online (Sandbox Code Playgroud)

我想获得User的类名:

System.out.println(User.getClass());
Run Code Online (Sandbox Code Playgroud)

我的目标是看到"com.packagename.User"输出到控制台,但是我将最终得到"com.packagename.Entity",因为Entity类是直接从静态方法引用的.

如果这不是一个静态方法,可以通过thisEntity类中使用关键字(即:)来轻松解决return this.class.getClass().但是,我需要这种方法保持静态.有关如何处理此问题的任何建议?

java class subclass super superclass

70
推荐指数
4
解决办法
8万
查看次数

如何在运行时检查子类是否是类的实例?

在Android应用程序测试套件中,我有一个这样的类,其中B是一个视图:

public class A extends B {
... etc...
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个可能包含A对象的视图对象列表,但在这种情况下我只关心它们是子类还是"实例" B.我想做点什么:

ArrayList<View> viewList = getViews();
Iterator<View> iterator = viewList.iterator();
while (iterator.hasNext() && viewList != null) {
    View view = iterator.next();
    if (view.getClass().isInstance(B.class)) {
        // this is an instance of B
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当if遇到一个A对象时,它不会评估为"实例B".有办法做isSubclassOf什么吗?

java subclass instanceof

68
推荐指数
4
解决办法
12万
查看次数

如何检查对象的类型是否是C++中的特定子类?

我正在考虑使用typeid()但我不知道如何询问该类型是否是另一个类的子类(顺便说一下,它是抽象的)

c++ class subclass identification

61
推荐指数
6
解决办法
10万
查看次数

Python:子类中__slots__的继承实际上如何工作?

插槽上Python数据模型参考部分中,有一个使用说明列表__slots__.我对第1和第6项完全感到困惑,因为它们似乎相互矛盾.

第一项:

  • 从没有继承的类继承时,该类 __slots____dict__属性将始终可访问,因此__slots__ 子类中的定义毫无意义.

第六项:

  • 一个的动作__slots__ 声明限制为定义它的类.因此,子类将具有一个,__dict__ 除非它们也定义__slots__ (它必须只包含任何其他槽的名称).

在我看来,这些项目可以更好地措辞或通过代码显示,但我一直试图绕过这个,我仍然感到困惑.我不明白怎么__slots__应该被使用,而我试图让他们的工作更好地把握.

问题:

有人可以用简单的语言向我解释在子类化时继承槽的条件是什么?

(简单的代码示例会有所帮助,但不是必需的.)

python inheritance subclass slots

59
推荐指数
3
解决办法
1万
查看次数

在Python中重新分类实例

我有一个由外部库提供给我的课程.我已经创建了这个类的子类.我也有一个原始类的实例.

我现在想要将此实例转换为我的子类的实例,而不更改实例已有的任何属性(除了我的子类覆盖的那些属性).

以下解决方案似乎有效.

# This class comes from an external library. I don't (want) to control
# it, and I want to be open to changes that get made to the class
# by the library provider.
class Programmer(object):
    def __init__(self,name):
        self._name = name

    def greet(self):
        print "Hi, my name is %s." % self._name

    def hard_work(self):
        print "The garbage collector will take care of everything."

# This is my subclass.
class C_Programmer(Programmer):
    def __init__(self, *args, **kwargs):
        super(C_Programmer,self).__init__(*args, **kwargs)
        self.learn_C()

    def …
Run Code Online (Sandbox Code Playgroud)

python subclass

56
推荐指数
2
解决办法
9272
查看次数

为什么使用声明不能解决钻石问题?

请考虑以下代码:

struct A
{
    void f()
    {
    }
};

struct B1 : A
{
};

struct B2 : A
{
};

struct C : B1, B2
{
    void f() // works
    {
        B1::f();
    }
    //using B1::f; // does not work
    //using B1::A::f; // does not work as well
};

int main()
{
    C c;
    c.f();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我恳请你不要复制粘贴标准答案如何解决钻石问题("使用虚拟继承").我在这里问的是为什么在这种情况下使用声明不起作用.确切的编译器错误是:

In function 'int main()':
prog.cpp:31:6: error: 'A' is an ambiguous base of 'C'
  c.f();
Run Code Online (Sandbox Code Playgroud)

我得到的印象是使用声明应该从这个例子开始:

struct A
{
    void f()
    { …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance using-directives subclass diamond-problem

51
推荐指数
3
解决办法
3406
查看次数

使用多个__init__参数对元组进行子类化

以下代码有效:

class Foo(tuple):

    def __init__(self, b):
        super(Foo, self).__init__(tuple(b))

if __name__ == '__main__':
    print Foo([3, 4])

$ python play.py 
Run Code Online (Sandbox Code Playgroud)

结果:

play.py:4: DeprecationWarning: object.__init__() takes no parameters
  super(Foo, self).__init__(tuple(b))
(3, 4)
Run Code Online (Sandbox Code Playgroud)

但不是以下内容:

class Foo(tuple):

    def __init__(self, a, b):
        super(Foo, self).__init__(tuple(b))

if __name__ == '__main__':
    print Foo(None, [3, 4])

$ python play.py 
Run Code Online (Sandbox Code Playgroud)

结果:

Traceback (most recent call last):
  File "play.py", line 7, in <module>
    print Foo(None, [3, 4])
TypeError: tuple() takes at most 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)

为什么?

python inheritance tuples subclass

49
推荐指数
2
解决办法
2万
查看次数

Perl 5中父级和基础有什么区别?

似乎有一个新的pragma命名parent与大致相同的东西base.这样parent做可以保证一个新的(非核心)模块?我错过了什么?

perl subclass pragma

48
推荐指数
2
解决办法
1万
查看次数

在Python中对int进行子类化

我有兴趣在intPython 中继承内置类型(我使用的是2.5版),但是在初始化工作时遇到了一些麻烦.

这是一些示例代码,应该是相当明显的.

class TestClass(int):
    def __init__(self):
        int.__init__(self, 5)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用它时,我得到:

>>> a = TestClass()
>>> a
0
Run Code Online (Sandbox Code Playgroud)

在哪里我期待结果5.

我究竟做错了什么?到目前为止,谷歌并没有太大的帮助,但我不确定我应该寻找什么

python inheritance subclass python-2.5

46
推荐指数
2
解决办法
1万
查看次数