Java面向对象

一.面向对象的思想

 思想特点:

  • 让复杂的事情简单化
  • 更加符合我们的思想
  • 让我们从执行者变成指挥者

概述:

        Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。面向对象的语言中,包含了三大基本特征,即封装、继承、多态。

二.类和对象的概念

1.类(Class)是人们对于客观事物的高度抽象,面向对象方法中的类是一种类型,它是具有相同属性和行为的对象的集合。类是具有相同属性和行为的若干对象的模板。类为属于该类的全部对象提供了抽象的描述,这种描述包括了属性和行为两大部分。

  • 属性:就是该事物的状态信息。
  • 行为:就是该事物能够做什么。

2.对象(Object)是一个应用系统中的用来描述客观事物的实体,是有特定属性和行为(方法)的基本运行单位。可以概括来说:万物皆对象。

3.类与对象的关系

(1)类是对一类事物的描述,是抽象的

(2)对象是一类事物的实例,是具体的

(3)类是对象的模板,对象是类的实体

三.继承

继承是子类调用父类的属性和方法。在Java中通过extends关键字实现;子类不能继承父类private的特性和构造方法;继承之后子类可以重新实现父类的方法,那么调用的时候就是调用的子类重写的方法;Java中只能是单继承的,一个类只可以有一个父类,一个父类可以有多个子类,实例化子类对象时默认优先调用父类。

:String类是被final修饰的类型,final类是不能被继承的,String类是不可变类型(Immutable)类。

  • Super和this的含义:

super:代表父类的存储空间标识(可以理性为父亲的引用)。
this:代表当前对象的引用(谁调用就代表谁)。
  • Super和this的不同:

代表对象不同:
   This:子类调用对象
   Super:父类对象的引用
前提:
   This:没有继承也可以使用
   Super:只有继承了才能用
构造方法:
   This();子类的构造
   Super();父类的构造

继承的目的:父母的被子女继承,表示父母的归属到子女
继承的机制:首先分析多个类的共同特征,把相同的特征和行为抽离出来形成一个基类,可以让这些类继承基类,而不需要在类本身中再定义相同的属性和行为
 

四.抽象类

抽象类:使用abstract关键字进行修饰的类叫做抽象类
        1.抽象类里面不是必须有抽象方法
        2.一个类里面有抽象方法,这个类必须是抽象类
抽象方法:
        1.方法只有声明没有方法体;

        //声明即规定方法三要素:方法名、参数列表、返回值类型
        2.要使用abstract关键字进行修饰

抽象类的特点:

        1.抽象类用abstract关键字来定义
        2.定义中含有抽象方法的类叫做抽象类
        3.抽象类不能实例化
        4.可以有具体方法,可以没有抽象方法

// Animal类
public abstract class Animal {
 
    public void sleep() {
        System.out.println("我趴着睡");
    }
    public abstract void eat(); 
}
// Dog类
public class Dog extends Animal {
 
    public Dog() {
        super();
    }
 
    @Override
    public void eat() {
        System.out.println("我实现了父类方法,狗吃肉");
    }
}
// Cat类
public class Cat extends Animal{
    public Cat() {
        super();
    }
 
    @Override
    public void eat() {
        System.out.println("我实现了父类方法,猫吃鱼");
    }
}
//测试类
public class AnimalTest {
    public static void main(String[] args) {
        Animal a1 = new Dog();
        a1.sleep();
        a1.eat();
        System.out.println("-------------------------");
        Animal a2 = new Cat();
        a2.sleep();
        a2.eat();
    }
}
我趴着睡
我实现了父类方法,狗吃肉
-------------------------
我趴着睡
我实现了父类方法,猫吃鱼

五.接口

  • 接口是一种“引用数据类型”编译后是一个class字节码文件
  • 接口是完全抽象的,是无法实例化
  • 接口支持多继承,一个继承可以继承多个接口
  • 接口包含两部分:常量 抽象方法
  • 接口中的方法都是抽象方法,所以接口中的方法不能有方法体
  • 一个类可以实现多个接口
  • 类和类之间叫做继承,类和接口之间叫做实现

六.多态

多态:是指同一行为,具有多个不同表现形式。(调用同样的方法,执行的是不同的功能)
1.继承口情况
2.在子类中对方法进行了重写
3.父类引用指向子类对象父类类型变量名=new 子类对象Q;
多态的好处:在开发中可以把父类(接口类型)类型定义为方法的形参,在实际调用的时候传入的实际参数就比较灵活,可以传入父类类型的对象,也可以传入任意一个子类类型的对象
多态:
1.继承或者实现【二选一】
2.方法的重写【意义体现:不重写,无意义】
3.父类引用指向子类对象【格式体现】
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值