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. asp.net获取当前页面文件名,参数,域名等方法。统一session验证和权限验证的方法

    转:http://blog.csdn.net/llll29550242/article/details/6054323 ASP.net后台获取当前页面的文件名 System.IO.Path.GetFi ...

  2. CodeFirst-数据迁移-Migration

    http://www.cnblogs.com/haogj/archive/2012/02/17/2356537.html 1.安装最新NuGet 2.安装EntityFramework:在程序包管理器 ...

  3. vijosP1037搭建双塔

    vijosP1037搭建双塔 链接:https://vijos.org/p/1037 [思路] DP. [代码] #include<iostream> #include<cstrin ...

  4. Hadoop之hive安装过程以及运行常见问题

    Hive简介 1.数据仓库工具 2.支持一种与Sql类似的语言HiveQL 3.可以看成是从Sql到MapReduce的映射器 4.提供shall.Jdbc/odbc.Thrift.Web等接口 Hi ...

  5. [LeetCode] Decode Ways 解题思路

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  6. Linux,实时获取磁盘空间

    #include <iostream> #include <stdlib.h> #include <stdio.h> #include <sys/statfs ...

  7. mysql 备份与还原

    http://dev.yesky.com/281/35291281.shtml 每一种逻辑错误发生的概率都极低,但是当多种可能性叠加的时候,小概率事件就 放大成很大的安全隐患,这时候备份的必要性就凸显 ...

  8. 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK。

    云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK. undefined 全明星之极验证 - SendCloud undefined [转载]国内外几个主流的在线开发 ...

  9. storm spout的速度抑制问题

    转发请注明原文地址:http://www.cnblogs.com/dongxiao-yang/p/6031398.html 最近协助同事优化一个并发消费kafka数据用来计算的任务,压测过程中发现有两 ...

  10. php如何修改SESSION的生存时间

    如何修改SESSION的生存时间 我们来手动设置 Session 的生存期: <?phpsession_start(); // 保存一天 $lifeTime = 24 * 3600; setco ...