Java学习笔记(一)----封装 继承 多态 抽象 接口

来源:互联网 发布:js点击隐藏按钮 编辑:程序博客网 时间:2024/05/19 17:02
包装  -- 对外隐藏特征和行为,内部实现细节 封装有利于程序的安全  -- 使用private修饰符私有化类的属性和方法 -- encapsulation -- 隐藏对象中的字段 -- 提供公共的操作方法 -- 对输入的值进行限制   --对封装的属性提供getter()  和 setter()方法      -- 只有getter()方法无 setter() 的属性为只读属性     -- 只有setter()方法无getter() 的属性为只操作属性 -- 封装包括 属性 和方法   -- 包括私有化属性和方法   -- 提供公共的接口   -- 限制数据的访问 *************************************** 访问修饰符   -- public       -- private    -- protected  --有关系 子类 同一个包才能够用   -- default   -- 默认 没写就是默认 继承   -- 继承就是将程序中共同的特征和行为抽取出来建立一个类,使其他类可以沿用此类中的属性和方法。这不仅仅可以减少程序中的重复代码,而且易于程序扩展   -- 提供子类可以沿用父类的某些行为和特征的一种方式,在程序中使用继承,有利于程序的扩展。   -- 使用关键字extends进行继承   -- 子类沿用父类的某些属性或方法的一种方式,同时有利于子类的扩展   -- 特点     --1、不能继承私有的属性和方法,构造方法也不能够继承     --2、一个类有且只有一个父类(继承的单一性)     --3、继承具有传递性     --4、父类类型可以指向子类对象,但是只能使用父类类型可以使用的属性和方法            Persion persion = new Child(); persion只能够调用Persion类中的属性和方法     --5、子类可以拥有和父类一样的方法,具体调用哪个方法由对象的实际类型决定           extends 方法的重写  具体调用哪个方法由new后面实例化的对象决定     --6、子类类型到父类类型可以自动类型转换             父类类型到子类类型需要强制转换(父类类型实际上是一个子类对象才可以使用)            Animal animal = new SmallMonkey();            Monkey monkey = new SmallMonkey();            animal(大) 转换成 monkey(小)时候可以强制转换 因为他俩作为父类 实际上都是指向子类SmallMonkey的对象     --7、区分父类对象和子类对象使用关键字:this 和 super     --8、this() super() 表示构造方法 ,没有参数表示无参构造器 ,带参表示带参构造器                                      每个子类的构造方法都默认的调用了父类的无参构造方法                                      当父类没有无参构造器时,子类必须显示调用父类有的构造方法     --9、子类中调用父类的构造方法时关键字super()必须放在第一行   --Object 是所有类的父类 所有类都直接或者间接的继承与object    -- 当类后没有关键字extends时候 就隐式的调用Object  -- final    final修饰的类不能够被继承    final修饰父类中的方法不能够被重写    final修饰的变量表示常量 值不能够被修改******************* 多态  接口***********************-- 多态的实现  -- 多态是指一个对外接口,多种实现方式,即一个接口使用不同的实例执行不同的操作,在Java中多态有两种表现形式,方法重载overload 和 重写 override  --方法的重写  和 方法的重载  --重载:方法名相同 参数列表不同    -- 方法重载应在同一类中    -- 重载方法名称相同 参数列表不同    -- 方法的返回值不作为方法重载的区分条件  -- 重写    -- 分别存在于父类和子类当中    -- 子类和父类方法名相同 返回类型相同        -- 重写的返回类型不能够比父类返回类型大  返回类型为引用类型    -- 子类和父类的方法参数列表相同    -- 子类方法修饰符范围不能够比父类小 ******************* 抽象类 **********************抽象类  -- 抽象类     -- 抽象类作用类似于模板,其目的是方便开发人员根据抽象类的格式来修改和创建新类    -- 抽象类用于继承,有利于程序的拓展    -- 定义抽象类 abstract      -- abstract 定义的方法为抽象方法      abstract class Book(){            public abstract void getBookName();      }      -- 特点        -- 匿名类  (定义了匿名类来实现抽象类) TestAbstract tAbstract = new TestAbstract() {};        -- 抽象类可以定义构造方法,但是构造方法不能够被实例化 (上面例子是匿名类实现抽象类)        -- 可以拥有非抽象类中的一切        -- 抽象类中可以有抽象方法 (使用abstract关键字修饰的方法,且没有方法的具体实现)        -- 存在抽象方法的类一定是抽象类  (接口中存在抽象方法,但是接口不是抽象类)        -- 子类继承抽象类必须实现其抽象方法,除非子类也是抽象类就不必实现    -- 抽象方法        -- 抽象方法不能够以static 和 final  private protected修饰         -- static 修饰的是类所有 实例化时候重写抽象方法 该方法就属于实现类的          -- final 属于终态 无法被重写        -- private 私有化 访问范围最小  ******************* 接口 *************************  为什么使用接口  -- 弥补继承的单一性 , 一个类可以实现多个接口  -- 接口实现多继承  -- 定义    -- 接口就是某个事物对外提供的一些功能的声明    -- 作用: 利用接口实现多态,弥补Java单一继承的缺陷    -- 定义接口关键字 interface  -- 特点    -- 静态常量(public static final 可省略)(接口中定义的变量都为静态常量)    -- 抽象方法(public abstract 可以省略)        public abstract void takePhotos(); 等效于  void takePhotos()    -- 实现接口关键字 implements    -- 实现接口时候必须实现接口全部方法    -- 实现多个接口时候 接口之间使用“,”隔开    -- 接口不支持实现接口(接口中的方法都是抽象方法,如果实现接口 实现的接口就跟抽象方法有矛盾)    -- 接口不能实例化 同时也不能有构造器
阅读全文
0 0