您的位置:首页 > 编程语言 > Java开发

Java语言面向对象总结(补充)

2014-12-21 15:33 330 查看
<span style="font-size:32px;">
</span>
封装,继承、多态

一、封装

是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处:

①将变化隔离。

②便于使用。

③提高重用性。

④提高安全性。

封装原则:

①将不需要对外提供的内容都隐藏起来。

②把属性都隐藏,提供公共方法对其访问。

二、继承

通过 extends 关键字让类与类之间产生继承关系。

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

多个类可以称为子类,单独这个类称为父类或者超类。

注意:

①子类可以直接访问父类中的非私有的属性和行为。

②子类无法继承父类中私有的内容。

③父类怎么来的?共性不断向上抽取而来的。

三、多态

某一类事物的多种存在形态。

例:动物中猫,狗。

猫这个对象对应的类型是猫类型:猫 x = new 猫();

同时猫也是动物中的一种,也可以把猫称为动物:动物 y = new 猫();

动物是猫和狗具体事物中抽取出来的父类型。

父类型引用指向了子类对象。

多态性简单说就是一个对象对应着不同类型。

体现:

父类或者接口的引用指向或者接收自己的子类对象。

作用:

多态的存在提高了程序的扩展性和后期可维护性。

前提:

①需要存在继承或者实现关系。

②需要有覆盖操作。

好处:

提高了代码的扩展性,前期定义的代码可以使用后期的内容。

弊端:

前期定义的内容不能使用(调用)后期子类的特有内容。

java代码示例:

//定义一个人父类
class Person
{
//名字和年龄是人的共有属性
String name;
int age;

//在构造函数中对名字和年龄进行初始化
Person(String name,int age)
{
this.name=name;
this.age=age;
System.out.println(name+"  "+age);
}
//人都具有睡觉的功能
void sleep()
{
System.out.println("sleep");
}
}
//定义一个学生,继承人,作为子类
class Student extends Person
{
Student(String name,int age)
{
super(name,age);    //super关键字表示父类,因为姓名和年龄在父类中进行了初始化动作,在这里可以直接调用
}
//学生具有特有的功能,学习
void study()
{
System.out.println("study");
}

}

class Demo
{
public static void main(String[] args)
{
Student s=new Student("zhangsan",20);
System.out.println(s.name="wangwu");
s.sleep();
s.study();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: