这周学习了多态,内部类,包等知识
多态:同一个类型的对象,执行同一个行为,在不同状态下会表现出不同的行为特征
多态形式
1.父类类型 对象名称 = new 子类构造器
2.Anilam c = new Cat()
3.接口 对象名称 = new 实现类构造器
4.父类类型范围 > 子类类型范围
多态的优势:在多态形式下,右边对象可以实现组件化切换,业务功能也随之改变,便于扩展和维护。可以实现类与类之间的解耦
实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,可以传入一切子类对象进行方法的调用,更能体现出多态的扩展性与便利
内部类:定义在一个类里面的类,可以提供更好的封装性,内部类有更多的权限修饰符,封装性有了更多的控制
内部类的分类:静态内部类,成员内部类,局部内部类,匿名内部类(重点)
1.匿名内部类是一个没有名字的内部类
2.匿名内部类一旦写出来,就会立即创建一个匿名内部类的对象返回
3.匿名内部类的对象的类型相当于是当前 new 的那个类型的子类类型
class Abc{
public static void main(String[] agrs){
Animal a=new Animal(){
public void run(){
System.out.println("内部类");
}
};
a.run();
a.go();
}
}
abstract class Animal{
public abstract void run();
public void go(){
System.out.println("开始");
}
}
包
1.相同包下的类可以直接访问
2.不同包下的类必须导包,才可以使用
3.导包格式: import 包名.类名
下周将学习异常与线程,集合等知识,以及发表《大道至简》的读后感,在这周学习中接触到了与c++不同的内部类,可以提供更好的封装性。