Java中面向对象三大特征

发布时间:2024-09-19 10:33:11 来源:君肯网

java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】

一、封装

对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)

具体来说:

1.属性: 私有 private(提供set和get方法)

2.方法: 公开或私有public/private

3.方法声明 –&gt公开

方法实现 –&gt隐藏

实现改变时,对对象的使用者没有影响。

二、继承

共性放到父类,特性放到子类;子类,父类 –&gt其实就是特殊 –&gt一般

1.关键字: extends 例如:Dog extends Animal{}

2.java中一个类最多只能有一个直接的父类,即单继承(具有简单性、树形结构),

C++中是单继承

java中要实现多继承,通过接口来实现。

3.父类中所有属性和方法都能继承给子类;父类中的私有方法不能继承给子类。

4.java中的访问修饰符

访问修饰符

访问权限

继承 

private

本类内部

不能继承

default

本类+同包

同包子类可以继承

protected

本类+同包+不同子包

可以继承

public

公开

可以继承

5.构造对象过程

(1)分配空间

(2)递归地构造父类对象

a. 父类 初始化属性

b. 父类 构造方法

(3)初始化属性

(4)调用构造方法

6.super

用法:

super() 调用父类的构造方法,只能出现在构造方法的第一行

super.方法名 super表示父类的对象,通过它去调用父类的方法

注意:在写类的时候,一定要写默认无参的构造方法,如果一个构造方法的

第一句既不是this(),也不是super()时,那么就会在这里隐含的调用

他的父类的无参的构造方法,即隐含的有super()。

三、多态

运行时多态。

子类的对象放在父类的引用中,例如 Animal a=new Dog,子类对象当父类对象来使用。

1.多态原则:

(1)对象类型不变

(2)只能用引用调用其引用类型中定义的方法

(3)运行时,根据对象的实际类型去找子类覆盖之后的方法

例子:

有Animal类中有eat()和sleep()两个方法,sleep()中睡8小时;子类Dog中有

eat()方法,sleep()方法中睡6小时,还有wangwang()方法。

现创建Animal a=new Dog()不能调用a.wangwang(),调用a.sleep()输出睡6小时。

2.对象的强制转换

格式: 引用 instanceof 类型

引用所指的对象是否与类相符,返回值boolean值。

用法:

Animal a=new Cat()

if(a instanceof Dog)

{

Dog d=(Dog)a

d.wangwang()

}

说明:如果只有Dog d=(Dog)a运行时错误,因为a是Cat而不是Dog (多态原则第一条)

3.多态的灵活变换

Java中面向对象三大特征

(1)用于参数列表上:

public void m(A a){} 可以用A类的任何子类对象作为参数

(2)用在返回值上:

public A m(){} 这个方法可能返回A类的任何子类对象

Java三大特性

封装,继承,多态,这是JAVA面向对象编程的三大特性了。 一。封装:是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是类的特征之一,应该可以理解,像一些私有的,别的类不可以访问了啊,都有访问权限的,比较安全了。 二。继承:指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。继承有三种方式,实现继承、接口继承和可视继承。 三。多态:简单的说就是,允许将子类类型的指针赋值给父类类型的指针。 实现多态,有二种方式,方法覆盖,方法重载。 JAVA博大精深,不是一言两语就可以说清的,我就不在这里多言了,简单的说了一点点,希望亲能采纳

public class $ {

    public static void main(String[] args) {

        Animal a1 = new Laohu()

        a1.zou()

        a1.area()

        a1.num()

        Animal a2 = new Xiong()

        a2.zou()

        a2.area()

        a2.num()

        Animal a3 = new Ma()

        a3.zou()

        a3.area()

        a3.num()

    }

}

abstract class Animal {

    public abstract void zou()

    public abstract void area()

    public abstract void num()

}

class Laohu extends Animal {

    public void zou() {

        System.out.println(”老虎怎么走?”)

    }

    public void area() {

        System.out.println(”老虎生活在什么地区?”)

    }

    public void num() {

        System.out.println(”老虎数量多少?”)

    }

}

class Xiong extends Animal {

    public void zou() {

        System.out.println(”熊怎么走?”)

    }

    public void area() {

        System.out.println(”熊生活在什么地区?”)

    }

    public void num() {

        System.out.println(”熊数量多少?”)

    }

}

class Ma extends Animal {

    public void zou() {

        System.out.println(”马怎么走?”)

    }

    public void area() {

        System.out.println(”马生活在什么地区?”)

    }

    public void num() {

        System.out.println(”马数量多少?”)

    }

}

老虎怎么走?

老虎生活在什么地区?

老虎数量多少?

熊怎么走?

熊生活在什么地区?

熊数量多少?

马怎么走?

马生活在什么地区?

马数量多少?

以上就是关于Java中面向对象三大特征全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】 一、封装 对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、…
查看详情
java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】 一、封装 对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、…
查看详情
java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】 一、封装 对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、…
查看详情
相关文章
推荐游戏
风之谷
风之谷
游戏资讯 10.5M
下载
斗罗大陆3
斗罗大陆3
游戏资讯 566.9M
下载
冠军网球
冠军网球
游戏资讯 148.1M
下载
最佳炮手
最佳炮手
游戏资讯 68.1M
下载
如梦下弦月
如梦下弦月
游戏资讯 840.1M
下载
富甲封神传
富甲封神传
游戏资讯 263.0M
下载