这周学习了多态,内部类,包等知识

多态:同一个类型的对象,执行同一个行为,在不同状态下会表现出不同的行为特征

多态形式

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++不同的内部类,可以提供更好的封装性。