当前位置: 技术问答>java相关
java的虚函数是怎样定义的,现想将类A中的变量x定义为只能给子类B与自己类中可访问,而又不能给其他类中用实例A a = new A()的a访问,可
来源: 互联网 发布时间:2015-11-13
本文导语: java的虚函数是怎样定义的,现想将类A中的变量x定义为只能给子类B与自己类中可访问,而又不能给其他类中用实例A a = new A()的a访问,可不可以实现的? 如果将x定义为:private 的话,子类B又不能访问了,定义为...
java的虚函数是怎样定义的,现想将类A中的变量x定义为只能给子类B与自己类中可访问,而又不能给其他类中用实例A a = new A()的a访问,可不可以实现的?
如果将x定义为:private 的话,子类B又不能访问了,定义为 protected 的话,上面所说的a又可随便改这个变量了!!!
如果将x定义为:private 的话,子类B又不能访问了,定义为 protected 的话,上面所说的a又可随便改这个变量了!!!
|
java所有的方法都是虚函数。
将B定义为A的内部类好了。你为什么要这样啊?变量都可以通过方法访问好了,定以为private,这样封装好啊!
将B定义为A的内部类好了。你为什么要这样啊?变量都可以通过方法访问好了,定以为private,这样封装好啊!
|
定义抽象函数是不写函数体,在函数前加上abstract
|
Java里面没有虚函数这个概念!
|
你好像有两个问题:
1.如何定义需函数:
java中所有方法可以认为都是虚函数,即子类会覆盖(重写)父类的方法.比如:
class A{
protected String name = "A";
public void f(){System.out.println("A");};
}
class B extends A{
public void f(){
name = "B";
System.out.println("B")};
}
A obj = new B();
obj.f();//调用B类的方法.
2.关于protected关键字.
A a = new A();
String strTemp = a.name;//这不可以访问的.
protected在类和子类的内部相当于public,而在类的外部相当于private.所以a.name是不可以被访问的.
1.如何定义需函数:
java中所有方法可以认为都是虚函数,即子类会覆盖(重写)父类的方法.比如:
class A{
protected String name = "A";
public void f(){System.out.println("A");};
}
class B extends A{
public void f(){
name = "B";
System.out.println("B")};
}
A obj = new B();
obj.f();//调用B类的方法.
2.关于protected关键字.
A a = new A();
String strTemp = a.name;//这不可以访问的.
protected在类和子类的内部相当于public,而在类的外部相当于private.所以a.name是不可以被访问的.
|
在A中定义为抽象函数,然后在B中实现这样不知道行不行
|
一句话,如果你学习过 C++.
Java 中所有没有指明 final 的函数都是虚函数.
C++ 中的虚函数必须要明确指明.
Java 中所有没有指明 final 的函数都是虚函数.
C++ 中的虚函数必须要明确指明.
|
其他的和 C++ 就差不多了
|
对,protected 是包内和子类可见的