面向对象(类,对象,封装,继承,多态,关键词,抽象类,接口)

浅谈面向对象(类,对象,封装,继承,多态,关键词,抽象类,接口)

1.类和对象的关系

类是抽象的,对象是具体的,对象是类的具体化。在构建上来讲,先有对象,后抽取他们的共性才有的类,但在编码实现上,是先有类,后通过关键词new出对象。

2.关键词

2.1 this

this.是指当前对象的,谁在执行,谁就是当前对象;this()是专门用来调用构造器的,它只在构造器的首行显示;

2.2 super

super和this的用法差不多,super.是指向父类对象的;super注意不能和this()同时显示在构造器中。

2.3 static

static静态的,共享的,通过static修饰的静态内容在本类中可以直接调用,在其它类中则需要通过类名调用。

2.4 final

a.修饰变量时,该变量是常量

b.修饰方法时,该方法不可以被重写

c.修饰类时,该类不可以被继承

3.封装

封装是指把属性,构造器,方法封装起来,通过其修饰符不同,其可见性也不同,修饰符的可见性从大到小为public,protected,默认的(即不写),private。假设现在有两个包,其中的类有继承关系,那么被public修饰则同包异包都可见,protected修饰的则同包都可见,异包中其子类可见,其他类不可见默认修饰的同包的都可见,异包的都不可见,private修饰的只有本类可见,其他类都不可见。

4.继承

继承就是抽取多个子类的共性形成父类,子类使用时可继承父类的属性和方法,提高了代码的复用性。继承的主要是方法的重写,重写发生在继承关系下,方法名和参数列表相同,返回值父类>=子类,修饰符子类>=父类,一般在重写的方法上标注@overrid看是否重写正确。

5.多态

5.1 多态的产生条件

a.必须有继承关系

b.必须要保证子类重写了父类中的某些方法

c.父类变量指向了子类对象

d.调用重写方法时,才能确保构成多态

5.2 多态的实现

假设peason是父类,student是子类,eat是person的方法,student对eat方法进行了重写。

Person p = new Student(); //父类变量指向了子类对象

p.eat(); // 编译看左边、运行看右边

6.抽象类

抽象类是比类还抽象的类(通过abstract修饰的类),在抽象类中可以声明变量,声明构造器,还可以声明普通方法和抽象方法(只有方法声明而没有方法体的方法)。

抽象类的作用就是为了让子类去继承,但是如果一个类继承了抽象类,那么他就必须实现抽象类的所有抽象方法(包括这个抽象类的父类的抽象方法(整个继承链))。

7.接口

7.1 接口的定义

接口就是一个标准。相对于类来讲,类是许多对象共有的is a 的关系,而接口是共有的have a关系

如果有类要实现接口的话,那么就需要实现其所有的抽象方法。

7.2 接口的内容

a.接口的属性都是默认通过 public static final 修饰的,也就是说接口中定义的成员变量必须要初始化

b.接口中不能包含构造器

c.接口中定义的方法都是 public abstract 修饰的抽象方法,jdk1.8后可定义默认方法default void m(){}

8.内部类

内部类包括局部内部类,普通内部类,静态内部类和匿名内部类。想要理解他们的使用,首先要明白类的加载时机,主动加载和被动加载。

主动加载:a. new一个对象 b. 调用当前类的静态内容 c. 当前类时启动类 (main方法)

被动加载:不会导致类加载,调用final修饰的静态内容是个确定值时是被动加载。

在这补充一下静态内容和非静态内容间的调用(静态内容是属于类的,非静态内容是属于内的)

a.静态内容调用静态内容:在本类中直接调用,在其他类中通过类名调用。

b.静态内容调用非静态内容:创建对象调用

c.非静态内容调用静态内容:直接调用

d.非静态内容调用静态内容:直接调用

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值