美文网首页
java基础

java基础

作者: 魂之挽歌w | 来源:发表于2017-12-10 10:52 被阅读5次

1.面向对象语言三要素:抽象、封装、多态

封装:

    封装应该是三个之中最容易理解的,我们将具体的人或者事物抽象成一个类,相当于将其定义为一个商品,有自己的属性和方法,其他的人和事物不能轻易观看该商品的属性和具体操作。

继承:

   继承主要是针对代码复用提出的,具体是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。我们使用extends来表示两个类之间的继承关系,比如class Student extends Person,我们首先已经有了Person这个属性,它定义了名字、性别、年龄等属性还有吃饭、运动等方法,而Student(学生)作为毫无疑问也具有人的所有属性(当然不排除现在有的学生活得不像人了),所以只需要继承person,就可以轻松继承人的所有方法和属性而不需要自己重新定义,这个时候我们称Person为父类,Student为子类。

另外,在java中一个子类只能继承一个父类,但可以实现多个接口(接口interface用来弥补单继承的缺点的一种方式),顺便说一下接口吧,举个例子,class Student extends Person implements beauty ,在这里beauty就是我们事先定义好的一个接口,从理解上来说,学生有很多,都具有人的属性,但是不是每个学生都是好看的,也就是能继承beauty的,那些美女帅哥就是指实现了我们beauty接口的那些人,注意:接口与类不同,在接口中的所有方法都是抽象的(abstract),也就是我们只能在接口中定义一些方法和变量,但是具体的实现要在实现接口的类中让类来实现,在这个例子中就是指beauty中的beautiful()方法要在Student中实现具体的描述,比如:眼睛大啊,清纯啊,善良等等根据具体的美女来描述。

类中呢,有一种叫抽象类的,在抽象类abstract class中也是有抽象方法,很多人会不知道如何区分抽象类和接口,刚学到抽象类的时候,一定会看到这样一句话:有抽象方法的类一定是抽象类,但抽象类不一定有抽象方法。这也是抽象类和接口的一个不同点吧,接口可是一定有抽象方法的哦!

下面说说它们之间的不同:

1.设计层面:

1.类可以实现多个接口,但是只能继承一个类,抽象类也是类

2.抽象类中可以有具体的方法实现,而接口中不能有的

3.抽象类中成员变量可以有多个类型,而接口中规定只能使用public static

4.接口中不能有静态代码块及静态方法

2 语义层面:

1.接口指的是”有没有“,抽象类指的是”是不是“

接口是对行为的抽象,而抽象类指的是对类的抽象。

多态:

多态应该是三个特征中最难理解的了吧,概念是:允许不同类的对象对同一个消息做出响应。

实现多态,有二种方式,覆盖,重载。

覆盖,是指子类重新定义父类的函数的做法。

重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

举例:在Student和Person类中我们都有吃饭这个方法,

class Person{

public void eat(){

System.out.println("人吃饭”);

}

}

class Student extends Person{

@override

public void eat(){

System.out.println("学生吃饭“);

}

}

在main放方法中:

main(){

Student student=new Student();

student.eat();

Person person =new Person();

person.eat();

}

结果:学生吃饭,人吃饭,

可以看到,对eat这个方法,这两个类的调用都是可以的,但子类中重写了该方法,那执行是就会使用子类定义的方法而不是使用我们继承的eat方法。

相关文章

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • Java 集合类原理

    Java基础——HashMap源码分析 Java基础——HashSet源码分析 Java基础——HashTable...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

  • java基础(一)-String、StringBuffer、St

    java基础-String、StringBuffer、StringBuilder java基础小白,初学java,...

网友评论

      本文标题:java基础

      本文链接:https://www.haomeiwen.com/subject/rqmmixtx.html