Java基础——面向对象
hello 大家好,我又来啦,今天我们来说说java的面向对象。
还记得之前去面试几家公司的实习生职位,大部分面试官都问过我有关面向对象 的问题,不知道以后还会不会问,估计是不会了吧。。。(:3[▓▓]
下面我们来说正事!(≖ ‿ ≖)✧
面向对象特点有四个——封装、继承、多态、抽象
封装:
封装的概念:方法的调用者并不清楚方法的具体业务逻辑,只有方法的实现者才清楚方法的具体实现。
封装的理解:java将相关变量和方法封装到类中,通过可见性实现封装。
可见性有四个关键字:
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面向对象方面的小小见解了!希望能够帮到大家!
我们下期再见!