Hello 大家好, 我又来啦, 今天我们来说说 Java 的面向对象.
还记得之前去面试几家公司的实习生职位, 大部分面试官都问过我有关面向对象 的问题, 不知道以后还会不会问, 估计是不会了吧...(:3[]
下面我们来说正事!(? ? ?)?
面向对象特点有四个 -- 封装, 继承, 多态, 抽象
封装:
封装的概念: 方法的调用者并不清楚方法的具体业务逻辑, 只有方法的实现者才清楚方法的具体实现.
封装的理解: Java 将相关变量和方法封装到类中, 通过可见性实现封装.
可见性有四个关键字:
1.private: 当前类可见
2.protected: 当前类 & 本包可见
3.default:(默认)当前类 & 本包 & 外包子类可见
4.private: 都可见
class 的可见性要么是 public, 要么是本包可见
一般情况下都是方法公有化 (public) 属性私有化(private)
继承:
继承的概念: 子类可以继承父类所有属性和方法, 但是由于可见性的原因, 子类只能使用所有父类的非私有化属性和方法(构造器除外).
要注意继承是单向的, 不可以互相继承
多态:
多态就是重写和重载了, 区别就是重载和参数有关, 重写和对象有关
重载方法可以发生在两个类中, 也可以发生在一个类中, 方法名一致, 参数类型不同, 与返回值无关.
重写一定发生在两个类中, 方法名一致, 参数类型一致, 方法返回类型一致, 返回类型一致.
- // 方法 test 体现重载 方法 testTest 体现重写
- public class A {
- public void test(int a){
- return "a";
- }
- public void test(long a){
- return "aa";
- }
- public void testTest(int b){
- return "b";
- }
- }
- public class B extends A{
- public void testTest(int b){
- return "bbbbbb";
- }
- }
抽象:
抽象的概念包括接口和抽象类.
public interface A{}
接口特点: 不能实例化对象
只有常量
只有抽象方法, 没有普通方法
一定被实现
接口是特殊的抽象类
悄悄告诉你(`?ω?) : 一个类可以实现多个接口 || 抽象类可以实现接口 || 接口可以继承接口 || 不能实现接口)
public abstract class A{}
抽象类特点: 不能实例化对象
有构造器(有成员变量, 需要初始化化)
可以有常量 & 变量
可以有普通方法 & 抽象方法
一定被继承, 实现就得重写抽象方法
抽象类的优点: 可以被多次利用.
抽象方法一定在抽象类中, 抽象类中不一定有抽象方法.
好了! 以上就是目前我在 Java 面向对象方面的小小见解了! 希望能够帮到大家! 我们下期再见!
来源: http://www.bubuko.com/infodetail-2756592.html