抽象类、接口、多态

来源:互联网 发布:人大在职法律硕士 知乎 编辑:程序博客网 时间:2024/05/28 23:19


 
一、多态
 什么是多态,一个事物的多个形态(水:液态,固态,气态)
 java语言中多态有好处,面向对象的好处,封装(类的复用,根据类创建对象),类越来越多(模板角度上来说,继承:活字印刷术,模板的复用)
 今天的代码对软件需求变更或扩展更加灵活
 
 前提条件:
  父子类的继承,重写方法,父类引用指向子类对象
  public static void eat(Animal a) {// 方法参数是父类(动态绑定)
   a.eat();
  }
  
  public static void main (String [] args) {
   eat(new Cat());
   eat(new Dog());
   eat(new Pig());
  }
  
 类型提升:父类引用指向子类对象(自定义类型的向上提升)
    父类引用上进行强制类型转换(自定义类型的向下转型):解决多态的弊端(不能在父类访问子类的独有方法)


二、抽象类
 抽象类是在我们原先继承的基础上进行了abstract关键字的约束,以后要分清楚是否还用普通类来定义
 
 抽象类的注意事项:
  抽象类:有构造方法,不能new,是给子类初始化
    不一定要有抽象方法,但是一旦有了抽象方法,类必须是抽象的。
  
  抽象类:成员变量,可以是变量,可以是常量
    成员方法:可以是普通的方法,还可是抽象方法
  
  一个类继承自抽象的类,可以是普通类(必须实现抽象方法)还可以是抽象类(可以不用实现抽象方法)
 
三、接口
 
 在抽象类的基础之上把所有的方法都写成abstract,接口是一种能力。不会变化本质,对本质进行能力的扩展提升
  
 接口的注意事项:
  侧重点在能力,没有new构造方法
  定义的是变量,会变成常量double PI = 3.1415926;
      public static final double PI = 3.1415926,可以用接口名直接调用
      中的方法全都是抽象的,要实现的话就要全部实现
      经验:java的源码中很多都是用接口来做的,因为jdk工具不受行业约束,java(标准)
       
       
       
 类和类的关系:继承、单继承、多层继承
 类和接口的关系:实现、单实现、多实现
 接口和接口的关系:可以继承、多继承(此处部分不好理解,不要现阶段掌握,以后在看jdk源码的时候能够感悟其中的奥秘(应用))
 抽象类和接口:可以实现接口(实现接口:抽象类中有一个带方法体的实现方法,抽象类中继承接口)
  
 

0 0
原创粉丝点击