菜单

Java面向对象基础

2018年11月16日 - Java

Hello 大家吓,我又来哪,今天我们的话说Java的面向对象。

图片 1

还记得之前错过面试几下合作社的实习生职位,大部分面试官都问了我有关面向对象
的题材,不了解以后还见面无会问,估计是无会见了咔嚓。。。(:3[▓▓]

oop.gif

下我们的话正事!(≖ ‿ ≖)✧

面向对象三要素:封装、继承、多态

 

面向对象特点有四个——封装、继承、多态、抽象

多态

方签名:方法名 + 参数列表(参数类型、个数、顺序)

 

重写

子类重写父类方法,只有实例方法可叫还写,重写后底方要按照为实例方法。分子变量和静态方法还不克给另行写,只能给藏

重写实例方法:超类Parent中来实例方法A,子类child定义了和A
如出一辙签名以及子集返回路
的实例方法B,子类对象ChildObj只会调用自己之实例方法B。

计的重写(override)两同片有些一死标准:

  1. 方式名相同,参数类型相同

  2. 子类返回路小于等于父类方法返回路

  3. 子类抛来很小于等于父类方法抛来老

  4. 子类访问权限大于等于父类方法访问权限

注意:

封装:

重载

每当与一个看似吃,有差不多个章程名相同,参数列表不同(参数个数不同,参数类型不同),与方的归来值无关,与权修饰符无关。编译器通过对章程签名的辨认即可静态编译出不同的方。这为是java中重载与重写的界别之一

重载只是平种语言特色,与多态无关,与面向对象也无关。多态是为贯彻接口重用

Java中法是可同类名同名的,和构造方法唯一的区别就是,构造方法没有返回值

打包的概念:方法的调用者并无晓得方法的有血有肉工作逻辑,只有方法的实现者才了解方法的现实性贯彻。

隐藏

隐身和覆盖于款式上太类似(语法规则),但拥有本质之界别:只有成员变量(不管是休是静态)和静态方法好给隐形。

包装的敞亮:Java将有关变量和艺术封装到接近吃,通过可见性实现封装。

分子变量

超类 Parent 中发出成员变量 A ,子类 Child 定义了跟 A 同名的成员变量 B
,子类对象 ChildObj 调用的是团结之积极分子变量 B。如果管子类对象 ChildObj
转换为超类对象 ParentObj ,ParentObj 调用的是超类的积极分子变量 A !

  1. 躲成员变量时,只要同名即可,可以又改变量类型(无论基本型或者隐藏类型)

  2. 无克隐藏超类中之 private
    成员变量,换句话说,只能隐藏可以拜的成员变量。

  3. 隐蔽超类成员变量 A
    时,可以减低或提高子类成员变量B的拜会权限,只要A不是 private。

  4. 隐身成员变量和是否静态无关!静态变量可以隐蔽实例变量,实例变量也可藏静态变量。

  5. 好隐藏超类中的final成员变量。

可见性有四独重点字:

静态方法

超类 Parent 有静态方法 A ,子类 Child 定义了和 A
相同签名以及子集返回路 的静态方法 B ,子类对象 ChildObj
调用的是协调之静态方法 B 。如果管子类对象 ChildObj 转换为超类对象
ParentObj ,ParentObj 调用的凡超类的静态方法 A !

潜伏后的措施必须比照为静态方法

1.**private**:当前接近可见

2.protected:当前类&本包可见

3.default:(默认)当前类&本包&外包子类可见

4.private:都可见

class的可见性要么是public,要么是本包可见

貌似情况下都是艺术公有化(public)属性私有化(private)

 

继承:

承的定义:子类可以延续父类所有属性与法,但是出于可见性的来头,子类只能采用有父类的非私有化属性与措施(构造器除外)。

※要顾继承是仅仅为的,不可以彼此继承

 

多态:

多态就是重复写及重载了,区别就是重载和参数有关,重写及对象有关

重载方法可有在少数单近乎吃,也得以来在一个好像吃,方法名相同,参数类型不同,与归值无关。

复写得有在少独八九不离十吃,方法名相同,参数类型一致,方法返回路一致,返回路一致。

 

 1   //方法test体现重载  方法testTest体现重写
 2  public class A {            
 3      public void test(int a){
 4           return "a";  
 5      }   
 6 
 7      public void test(long a){
 8           return "aa";  
 9      }     
10  
11      public void testTest(int b){
12         return "b";  
13     }
14  }
15  
16  public class B extends A{
17      public void testTest(int b){
18         return "bbbbbb";  
19     }
20  }

 

 

抽象:

空泛的概念包括接口和抽象类。

public interface A{}

接口特点:不可知实例化对象

      只有常量

**      只发生抽象方法,没有通常方法**

        一定为实现

        接口是破例之抽象类

 悄悄告诉您(`・ω・´)
:一个看似可以实现多个接口  ||  抽象类可兑现接口  ||  接口可以继承接口
 ||  不能够兑现接口)

 

public abstract class A{}

 

泛类特性:不可知实例化对象

      有构造器(有成员变量,需要初始化化)

      可以来常量&变量

      可以发普普通通方法&抽象方法

      一定叫延续,实现就得重写抽象方法

抽象类的长处:可以吃数♂利用。

抽象方法肯定当抽象类吃,抽象类吃未自然有抽象方法。

 

 

 好了! 以上就是眼前自家当Java面向对象方面的细小见解了!希望能够帮到大家!
 我们下期再见!

 图片 2

 

相关文章

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图