JAVAday17

继承: 
 子承父业:
   子 会拥有 父  的所有资产;
   
java在面向对象中 也提供了 继承的特性:
    为了提高程序的 延展性, 扩充性   
    
java中  只支持 单继承; 一个类 只能有一个  父类    
    
方法的重写:
  在继承中,子类 重写了父类的方法,但是要保证
        子类中的 方法名与父类相同,参数列表相同, 返回值相同,就是重写

在继承中: 
  类的 5个组成部分有哪些可以被继承: 
   1、公共的成员变量
   2、普通方法
  
java构造器 是不能被继承的;但是 必须被子类调用
默认调用 的是无参构造器,如果没有无参构造器 ,就必须
手动调用父类 有参数的构造器;

java只能单继承(一个类只有一个父类), 但是可以多重继承

java中 在没有使用extends 创建继承关系时
     任意一个类的父类 都是 Object 类

--------------------------------------------------
抽象类:
  类 是 对象的 抽象 ,  对象是类的 具体实例;
 
抽象类 -----> 类  -----> 对象

                          new Person();
 方法名 没有具体实现    

抽象类:
  语法结构:  public abstract class 类名

抽象类的目的就是为了 更好的 设计程序: 
  抽象类中 会包含 一些 具体方法 和 抽象方法

他存在的意义就是为了被继承;  

java中不允许 抽象类  创建对象  new 抽象类 是不可以的

抽象类:  是 用abstract 关键字修饰的类
  抽象类中:可以有普通方法和 抽象方法 , 也可以没有抽象方法
          但是 有抽象方法的 类 一定是 抽象类

抽象类是由 构造器的 ,存在的意义就是为了 被子类调用,
抽象类不能创建对象;       

--------------------------------------------
接口: interface

完全抽象: 这里没有具体方法,全是 抽象方法
 语法结构: 
   public interface xxx{
   
   }

  接口  --->  抽象类  ---->    类  ---->s   对象
 
**** 接口的作用: 就是用来设计程序 ,设计好了 ,实现方便, 
      设计不好 , 影响后期开发 

**** 接口 不可以创建对象 ,没有构造器
   
**** 接口中可以存在属性

  1.类和 类之间是 继承关系  extends

  2.类和 接口时 实现关系  implements

  3.接口 和 接口之间的  继承  , 可以是 多继承 ,可以有多个父接口
           public interface A extends B,C,D{
                //B,C,D都是接口
           }
  类和类 一个 父类

  4.一个类 可以实现 多个接口 : 例如:  
       Haha implements Calculator, A, B{
            //Haha是类 ,  Calculator, A, B 接口
       }
----------------------------------------------------          
final: 关键字
  最后的,最终的;
 1.final 可以修饰  属性 :常量, 必须初始化, 不可以被改变  
 2.final 可以修饰方法 ,不能被重写
 3.final 修饰的类 不能被继承 , 被称为: 不可改变类

 静态常量: 
  public static final int PAGE_SIZE = 60; 
  
  Pager.PAGE_SIZE 

----------------------------------------------------
  封装 , 继承  多态 ,抽象

多态: 多种状态;
  什么是 多态?
    同一种事物 的 , 不同中表现 形态;

 extends 
 
Animal

Dog     Cat  Eagle

从代码上 如何 表示出 多态:
   父类 类型 变量名  = new 子类类型();

 1. Aniaml a = new Dog(); 多态

          a = new Cat();
          
          a = new Pig();
 2.作为方法的入参 ,: 让当前 入参 传入的 类型 更多了 
      代码复用率高
      
 
 编译时类型 父类 ,  运行时类型 是子类
 
  所以设计到对象的 : 向上 转型  cast up  ,向下转型  cast down
    
多态: 
三种代码形式: 
  1.父类类型  变量名 = new 子类类型();
       javac  , 变量名 是 父类类型;
       java  ,   变量名 是 子类  类型
  
  2.接口 变量名 =  new 实现类();
          
       javac  , 变量名 是  接口的类型;
       java  ,   变量名 是 实现类的类型;
      
  3.作为方法的入参 ,

如果在多态中,一定要调用 子类独有的方法 就必须 使用
  instanceof关键字 判断
  
  if(变量名  instanceof 子类类名){
           如果满足条件了 ,强制转换  向下转型
           子类    变量名 = (子类)变量名;
           变量名.独有方法();
  }

 

 //方法之间的相互调用,我没调好,这里留下问题然后就是接口多态这里很难,我还需要花时间多看多写,因为没有完全掌握,很多知识盲点,等三天后回来复盘吧

太累了 今天先休息了 pigure那题要打标签,很经典。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值