Java 类和对象(3)
向上转型
老师介绍的一个新概念,具体咋用还不清楚,先说说,以免看到了之后一脸懵逼。
在上一节中我们提到了这种声明:
manager m = new manager();//实例化对象
现在看一下这样的奇怪声明:
employee n= new manager();
这是个🔨意思呢?意思就是定义了一个employee类型的引用指向manager类
由于Manager是继承自它的父类Employee,所以Employee类型的引用是可以指向Manager类型的对象的。
向上转型的意义
子类是对父类的一个改进和扩充,所以一般子类在功能上较父类更强大,属性较父类更独特,定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。
(这是老师说的,具体咋用也没说,先长长见识)
Java访问权限
Java有四种访问权限:友元,public,private,protected;
这些就是所谓的修饰符,放在类成员定义前面。
公有成员 public
不管两个类是否位于同一个目录中,一个类总可以访问另一个类的public成员。
class A {
public int i=10;
}
class B {
public int b=i;//B类中的实例变量访问A类中的公有成员
}
public还可以用于修饰主类,文件名必须与主类名一致。除此之外,其它3个修饰符都不能用于修饰类,只能修饰成员
//一个文件中只能有一个主类
public class A{
}
class B{
}
友元
缺省修饰符的情况就是友元,意味着同一个目录(包)中的所有类都可以访问这种类型的成员。
class A {
int i=10;//i为友元
}
protected
被protected修饰的成员称为被保护成员。
这种类型的成员可以被子类访问。同一个包内的非子类,也可以访问这种类型的成员,即:protected天生就具有友元权限。
在未出现继承之前protected等同于private(此处说的可能有点问题在看了下面同一包内访问权限,为什么可以访问protected而不可以访问private)
private
被private修饰的成员称为私有变量,只能被本类成员调用,不能被其他类调用
Java访问权限总结
源码验证
建议敲一敲看一看