JAVA基础学习–面向对象

1.面向对象与面向过程:

面向过程:就代表从头到位,每一步都需要我们来完成,例如洗衣服,首先收拾脏衣服、接上水、到洗衣液、搓、倒水、拧干、晾晒。每一步都需要我们来完成。

面向对象:就是将这些步骤和功能在进行封装为对象,通过对象为基础来完成各个事务。例如洗衣服,你需要将衣服扔进洗衣机,然后出来的就是我们需要的干净拧干的衣服了,就不需要每一步亲自操作。

面向对象编程思想的三大特征:封装、多态、继承。

2.封装:

private是一个关键字, 也是访问权限修饰符的一种, 它可以用来修饰类的成员,通过private关键字和getting和setting方法封装成员变量,提高代码的安全性。

构造方法:建议定义类时 我们给出无参构造, 方便用户调用,一般是两个,无参和全参。

3.继承:

多个类中存在相同属性和行为时, 将这些内容抽取到单独的一个类中, 那么这多个类就无需再定义这些属性和行为了, 只要继承那个类即可. 这个关系, 就叫继承。

通过extends关键字来实现类与类的继承(public class 类A extends 类B)

好处:提高了代码的复用性、提高了代码的可维护性、让类与类之间产生关系, 是多态的前提。

弊端:让类与类之间产生了关系, 也就让类的耦合性增强了。

开发原则:高内聚,低耦合。(内聚: 指的是类自己独立完成某些事情的能力。耦合: 指的是类与类之间的关系。)

当成员变量或成员方法同时出现在子类和父类中时,调用时会遵循就近原则。

this关键字时调用本类的成员变量、构造方法、成员方法,super关键字是调用父类的成员变量、构造方法、成员方法。

Java面向对象的相关试题 java面向对象基础知识_java

子类中出现和父类一模一样的方法时,称为方法重写。方法重写要求返回值的数据类型也必须一样。

4.多态:

多态就是同一个事物(或者对象)在不同时刻表现出来的不同状态。

多态要求:要有继承关系、要有方法重写、要有父类引用指向子类对象。

向上转型:父类型 对象名 = new 子类型()

eg:Animal cat = new Cat() ,前面是动物类,而后面是他的子类猫类。

弊端:父类引用不能访问子类的特有功能,需要使用向下转型的方式解决。

向下转型:子类型 对象名 = (子类型)父类引用

eg:Animal cat = new Cat(); Cat c = (Cat)cat;

5.final和static:

final是一个关键字, 表示最终的意思, 可以修饰类, 成员变量, 成员方法

修饰的类: 不能被继承, 但是可以继承其他的类。

修饰的变量: 是一个常量, 只能被赋值一次。

修饰的方法: 不能被子类重写。

static是一个关键字, 表示静态的意思, 可以修饰成员变量,成员方法。

非静态方法能访问所有成员(非静态变量,非静态风法,静态变量,静态风法)静态方法只能访问静态成员。

6.抽象类:

在Java中,一个没有方法体的方法应该定义为抽象方法, 而类中如果有抽象方法,该类必须定义为抽象类。

抽象类中不一定有抽象方法, 有抽象方法的类一定是抽象类。

抽象类的子类:

如果是普通类, 则必须重写父抽象类中所有的抽象方法.

如果是抽象类, 则可以不用重写父抽象类中的抽象方法.

抽象类中可以有变量, 常量, 构造方法, 抽象方法和非抽象方法。

抽象类不能实例化–可以通过多态的方式, 创建其子类对象, 来完成抽象类的实例化, 这也叫: 抽象类多态。

7.接口:

接口用interface关键字修饰.

类和接口之间是实现关系, 用implements关键字表示.

接口不能实例化-- 可以通过多态的方式, 创建其子类对象, 来完成接口的实例化.这也叫: 接口多态.

接口的子类:

如果是普通类, 则必须重写父接口中所有的抽象方法.

如果是抽象类, 则可以不用重写父接口中的抽象方法.

接口中有且只能有常量或者抽象方法, 原因是:成员变量有默认修饰符: public static final,而成员方法有默认修饰符: public abstract。

类和接口的关系:

类与类之间: 继承关系, 只能单继承, 不能多继承, 但是可以多层继承.

类与接口之间: 实现关系, 可以单实现, 也可以多实现. 还可以在继承一个类的同时实现多个接口.

接口与接口之间: 继承关系, 可以单继承, 也可以多继承.