变量"受保护"很容易被派生类恶意改变?我应该在基类变量中使用"private"而不是"protected"吗?
这可能是一个愚蠢的问题,但我不明白:
我有一个名为Card的课程.我想使用MemberWiseClone()进行浅层克隆.理论卡继承自Object.所以它应该能够使用MemberWiseClone(),即使MWC()受到保护?
我遗失/遗忘了什么吗?
我无法理解 C++ 类中私有成员和受保护成员之间的区别。简单来说,有什么区别?
一个小问题的简短问题.
class topclass {
protected $test;
//....
}
class childclass extends topclass {`
public static function accessVariable(){
//HOW CAN I ACCESS THE $Test VARIABLE OF THE SUPERCLASS HERE?
}...
Run Code Online (Sandbox Code Playgroud)
有人能帮助我吗?
非常提前
我在超类中有一个受保护的方法.
package com.pts.filter
public class a {
...
protected Filter callFilter(Object aInParam) {
return Filter.LowPass;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在扩展课程.
package com.pts.filter.image
public class b extends a {
...
@Override
protected Filter callFilter(Object aInParam) {
...
return Filter.LowPass;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到编译器错误,说" 类型b的方法callFilter必须覆盖或实现超类型方法 ".我正在扩展类a所以我不明白为什么它没有看到超类型方法.是因为我试图覆盖的方法受到保护吗?从我的理解,受保护的方法在子类中可见.
我创建了一个类,它有几个protected成员,可以被其他类完全访问:
class MyClass {
protected String name;
}
Run Code Online (Sandbox Code Playgroud)
在我看来,这不应该编译:
MyClass mc = new MyClass();
mc.name = "foo";
Run Code Online (Sandbox Code Playgroud)
但它工作正常.当我成为会员时private,它按预期工作.怎么会这样?
一些注意事项,但我认为它们应该没有任何区别:
mc里面HashMap,Activity我编写了一些代码来计算RSA加密算法.该程序使用类和继承,因为我想为多个用户计算公钥和私钥.有一个父类rsa和子类public_key和private_key.
编译下面的代码时,我收到很多错误.所有这些都是关于派生类没有各自构造函数中的可用字段(请参阅代码下面的错误消息).但是,这些变量是使用protected父类中的访问修饰符定义的,因此子类应该可以访问它们.
一方面注意:我key在两个子类中都有这个函数,但我认为最好把它放在父类中一次,这是对的吗?
这是代码:
#include <iostream>
#include <math.h>
using namespace std;
class rsa
{
protected:
int p, q, d, m, n, f, e, c, end, k;
public:
rsa() : n(0), e(0), c(0), k(0), end(0), f(0)
{ }
void set(int , int , int, int);
int key()
{
n = p * q;
f = (p - 1) * (q - 1);
for (k; end < 1; k++)
{
if ((1 …Run Code Online (Sandbox Code Playgroud) 在Ruby 2.1中,def现在返回一个符号
[1] pry(main)> def foo; end
=> :foo
Run Code Online (Sandbox Code Playgroud)
一个很酷的用例是因为private并且protected是采用符号并使方法成为私有的方法,您现在可以创建一个私有方法,如下所示:
private def foo
end
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用类方法.这段代码:
protected def self.baz
end
Run Code Online (Sandbox Code Playgroud)
将错误:protected': undefined method 'baz' for class 'User' (NameError)".
有没有办法让它工作?
好的,让我以下面的例子开始,以获得一个简短的例子
public class ClassA{
______ static final String MODULE = "[ClassA]";
}
Run Code Online (Sandbox Code Playgroud)
在空白空间,我在许多代码片断来了它有一定的时间public或protected或private但不明白的哪一个是最好的,为什么?.我知道protected是最好的subclass实现,但随后subclass到了MODULE变数.
基本上MODULE用于记录活动,例如
System.out.println(MODULE+"given message");
Run Code Online (Sandbox Code Playgroud)
简而言之,这是用于访问的最佳方式?
我越来越
无法访问受保护的符号TParent.Test
用于以下代码:
在Unit1:
TParent = class
protected
function Test: TParent;
end;
implementation
function TParent.Test: TParent;
begin
Result := Self
end;
Run Code Online (Sandbox Code Playgroud)
在第2单元:
uses Unit1;
type
TChild = class(TParent)
end;
implementation
var c: TChild;
begin
c := TChild.Create;
c.Test.Test
end;
Run Code Online (Sandbox Code Playgroud)
TChild不应该可以访问返回值吗?
c.Test;
c.Test
Run Code Online (Sandbox Code Playgroud)
当然是有效的.
protected ×10
private ×4
c++ ×3
java ×3
class ×2
inheritance ×2
member ×2
c# ×1
clone ×1
delphi ×1
delphi-xe2 ×1
overriding ×1
php ×1
public ×1
ruby ×1
ruby-2.1 ×1
superclass ×1