首页 > 编程知识 正文

多态性的例子,面向对象语言的三大特点

时间:2023-05-04 12:29:40 阅读:50226 作者:1493

http://www.Sina.com/http://www.Sina.com /

Java中的封装是指类隐藏其内部实现的细节,只暴露对外接口(setter和getter方法)。 封装分为属性封装和方法封装。 属性定义为私有,它们通过setter和getter方法设置和检索属性的值。

公共类人员{ private int id; 私有字符串名称; 私人个人; 公共int getid () { return id; } public String getName (() { return name; }公共个人获取个人() { return person; }公共语音设置(intid ) { this.id=id; }公共语音集名称(字符串名称) { this.name=name; } publicvoidsetperson (person person ) { this.person=person; 在Person类中定义了三个成员变量: id name person。 这些成员变量的所有访问限定都是私有的,通过在setter和getter方法中设置值来获取值。 那么,有什么好处呢? 封装的含义是加强类的信息隐藏和模块化,提高安全性。 封装的主要作用也是对外部隐藏具体的实现细节,提高程序的安全性。

Java面向对象的三大特征为:封装、继承和多态。

Java中的继承是指基于现有类(父类)构建新类(子类)。 子类可以具有父类的成员变量和成员方法。 但是,您不能访问或调用父类的私有成员变量或方法。 继承的作用是提高代码的重用性。 子类是父类中的所有类,可以访问和使用父类中的非专用成员变量,也可以重写父类中的非专用成员方法。1.封装

package cn.csu.ksh; 公共类人员{私有Inta=1; //父类的私有成员变量private int id; 私有字符串名称; 私密int age; 公共int getid () {return id; }公共语音设置(intid ) {this.id=id; }public String getName (() {return name; }公共语音集名称(字符串名称) {this.name=name; }public int getAge () {return age; }公共语音设置(intage ) {this.age=age; }@Overridepublic String toString () {return 'Person [id=' id ',name=' name ',age='age; }public void say () system.out.println ) ' Personsay . '; }public void run () system.out.println ) ' personrun…' ); //父类的专用方法private void show () (system.out.println ) ' personshow . ' ); }} 2.继承

package cn.csu.ksh; publicclassstudentextendsperson { @ overridepublicvoidsay () {super.say ); }@Overridepublic void run () {super.run ); } publicstaticvoidmain (字符串[ ] args ) {Student stu=new Student ); //stu.a=1; //子类中的对象将向父类的私有成员变量返回错误! //stu.show (; //子类对象调用父类的专用方法,以同样的方式报告错误! stu.say (; stu.run (; }继承的优点是实现代码的重用和扩展。 子类通过重用父类中的代码,直接在方法上重写父类中的方法来实现扩展,而无需定义父类中已经定义的成员变量。

父类:

多态性是指多种状态。 这意味着,如果一个操作位于不同的对象上,则会产生不同的结果。

在Java中,实现多态性的方法有两种,一种是编译时的多态性,一种是运行时的多态性。 编译时的多态性是通过方法的重载来实现的,而运行时的多态性是通过方法的重写来实现的。

的重载是指在同一类中有多个方法名称相同的方法,但这些方法有不同的参数列表,可以确定在编译时调用哪个方法。

的改写。 子类重写父类中的方法,包括接口实现。 对父类的引用不仅可以指向父类的对象,还可以指向子类的对象。 如果对父类的引用是对子类的引用,则只能在运行时确定调用哪个方法。

实际上,要实现运行时的多态性,需要满足三个条件。

1 .继承(包括接口实现)2.方法重写)3.对父类的引用指向子类对象

另外,多态性都是类内方法的多态性,属性中没有多态性。 方法的重载在这里没有示例,只是谈谈运行时的多态性。

子类:

package cn.csu.ksh; publicinterfaceanimal { void shout (; } 3.多态

package cn.csu.ksh; publicclassdogimplementsanimal { @ overridepublicvoidshout () system.out.println('WangWang . ' ); } } 接口

package cn.csu.ksh; publicclasscatimplementsanimal { @ overridepublicvoidshout () system.out.println(miaomiao. ' ); } } 实现类1

package cn.csu.ksh; publicclassanimaltest { publicstaticvoidmain (字符串[ ] args ) /父类的引用是子类对象Animal d=new Dog ); 动画shout (d; //对父类的引用由子类对象Animal c=new Cat (; 动画shout (c; } publicstaticvoidanimalshout (animal animal ) {animal.shout ); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。