java和c#一样都是面向对象的语言。

面向对象的语言有三大特征:封装、继承、多态

封装

封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。

class Person2
{
private String name;
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
} private String sex;
public void setSex(String sex)
{
this.sex=sex;
}
public String getSex()
{
return sex;
} private int age;
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
} private double height;
public void setHeight(double height)
{
this.height=height;
}
public double getHeight()
{
return height;
}
} public class Person1 {
public static void main(String arges[])
{
Person2 p2=new Person2();
p2.setName("小黄");
p2.setSex("男");
p2.setAge(20);
p2.setHeight(1.70);
System.out.println("姓名:"+p2.getName()+",性别:"+p2.getSex()+",年龄:"+p2.getAge()+",身高:"+p2.getHeight());
}
}

继承

继承:发生在类与类之间,在已存在的类的基础之上进行继承,通过继承来共享父类的成员和方法,并加入新的方法。可以单继承,也可以多继承。

在Java中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此,子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且添加了特有功能方法。

class Father
{
public String name;
public int age;
public String eye;
public String height;
public String cutis;
//Father类的构造器
public Father()
{ } public Father(String name,int age)
{
this.name=name;
this.age=age;
}
//重写Object类中的toString方法
/*public String toString()
{
String emp="姓名:"+name+",年龄:"+age;
return emp;
}*/
} public class son extends Father
{
public String spectacle_frame;
public son()
{ }
public son(String spectacle_frame)
{
this.spectacle_frame=spectacle_frame;
} public void getMes()
{
System.out.println(spectacle_frame);
}
public static void main(String arges[])
{
Father f=new Father("Father",50);
System.out.println(f);
son s=new son("Blue");
s.name="Tom";
s.age=20;
System.out.println(s);
s.getMes();
}
}
注释:重写Object类中的toString方法
取消注释:重写Object类中的toString方法

多态

多态:接口的多种不同的实现方式即为多态,同一个实体同时具有多种形式。

class fruit
{
public void getMes()
{
System.out.println("父类");
}
} class apple extends fruit
{
public void getMes()
{
System.out.println("apple子类");
}
} class orange extends fruit
{
public void getMes()
{
System.out.println("orange子类");
}
} public class racing_cycel {
public void show(fruit f)
{
f.getMes();
} public static void main(String arges[])
{
racing_cycel rc=new racing_cycel();
fruit f=new fruit();
apple a=new apple();
orange o=new orange(); rc.show(f);
rc.show(a);
rc.show(o);
}
}

运行结果

学习java随笔第八篇:封装、继承、多态的更多相关文章

  1. java四大特性理解(封装继承多态抽象)

    封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象.封装是一 ...

  2. 学习java随笔第十一篇:java窗体程序

    要开java的窗体程序,就要下载开发窗体的工具. 这里我用的是的myeclipse,可以直接在网上下载安装即可. 我用的是10.0版本的,如果需要汉化的话,可以看一下这篇文章:myeclipse.10 ...

  3. 学习java随笔第六篇:数组

    一维数组 创建一维数组并输出 public class OneDimensionalArray { public static void main(String argas[]) { int i[]= ...

  4. 学习java随笔第三篇:java的基本数据类型

    数据类型 一:整型 1.十进制 2.八进制 八进制数是满8进1,包含0~7的8个数字,在整数前面添加一个"0",表示是八进制数. 3.十六进制 十六进制数是满16进1,包含0~9, ...

  5. 学习java随笔第十篇:java线程

    线程生命周期 线程的生命周期:新建状态.准备状态.运行状态.等待/阻塞状态.死亡状态 示意图: 定义.创建及运行线程 线程: package threadrun; //定义一个实现Runnable接口 ...

  6. 学习java随笔第七篇:java的类与对象

    类 同一个包(同一个目录),类的创建与调用 class Man{ String name; void GetMyName() { System.out.println(name); } } publi ...

  7. 学习java随笔第五篇:流程控制

    条件语句 if(表达式){方法体}else if(表达体)else{方法体} 简写形式:if... 一般形式:if...else... 完整形式:if...else if...else 分支语句 sw ...

  8. 学习java随笔第四篇:运算符

    算术运算符 "+":加法运算符,也可做字符连接用途 "-":减法运算符 "*":乘法运算符 "/":除法运算符 &quo ...

  9. 浅谈学习C++时用到的【封装继承多态】三个概念

    封装继承多态这三个概念不是C++特有的,而是所有OOP具有的特性. 由于C++语言支持这三个特性,所以学习C++时不可避免的要理解这些概念. 而在大部分C++教材中这些概念是作为铺垫,接下来就花大部分 ...

随机推荐

  1. bzoj1023

    研究了一下仙人掌首先,仙人掌虽然不是树,但却有很强的树的既视感如果把每个环都看做一个点,那么他就是一棵树当然这不能直接缩环,因为环和环可以有一个交点如果是树,求直径都会做,令f[i]表示i到子树的最长 ...

  2. C# winform 导出导入Excel/Doc 完整实例教程[网上看到的]

    还真没做过winform的导出导入,今天上网百度了一下.结果--- 所以还是我自己写个吧.之前做过web的,半搬半做就OK. 1添加引用:Aspose.Cells.dll(我们就叫工具包吧,可以从网上 ...

  3. Hibernate不同数据库 方言|驱动|url 配置

    Hibernate不同数据库方言|驱动|url mySql: hibernate.dialect : org.hibernate.dialect.MySQLDialect driverClassNam ...

  4. Keepass 2.x 的一些新发现

    近期将 Keepass 从 1.22 升级到了 2.24,经过一番折腾,发现有了很多新功能,也有一些之前被忽视的地方.再一次感叹这个软件的强大,向作者的无私奉献致敬! 其实,这个软件一直有 1.x 和 ...

  5. jQuery技术内幕预览版.pdf3

    jQuery.fn.init(selector,context,rootjQuery):构造函数 jQuery.fn.init() 负责解析参数 selector 和 context 的类型,并执行相 ...

  6. HW4.29

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  7. PHP配置图文教程

    组合解释:lamp,其英文译为灯,可以方便记忆.其实每个字母代表的是一个英文缩写.l-->Linux,a-->Apache,m-->MySql,p-->PHP 由于以上资源都是 ...

  8. 关于yuv 的pack(紧缩格式)和planner(平面格式)格式 [转]

    关于yuv 格式 YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式.前者将 YUV 分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel);而 ...

  9. Yii框架tips

    db组件 'schemaCachingDuration'=>3600, 为什么不起做用?需要开缓存 如何在页面下边显示sql的查询时间在log组件的routes中加入 array('class' ...

  10. java-mina(nio 框架)

    mina是对nio的具体实现.是目前比较高效和流行的nio框架了. 下面是对使用mina进行通讯的一个简单demo,后面再用mina写一个RPC的简单框架.   mina主要包括: (使用的mina版 ...