学习java随笔第八篇:封装、继承、多态
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随笔第八篇:封装、继承、多态的更多相关文章
- java四大特性理解(封装继承多态抽象)
封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象.封装是一 ...
- 学习java随笔第十一篇:java窗体程序
要开java的窗体程序,就要下载开发窗体的工具. 这里我用的是的myeclipse,可以直接在网上下载安装即可. 我用的是10.0版本的,如果需要汉化的话,可以看一下这篇文章:myeclipse.10 ...
- 学习java随笔第六篇:数组
一维数组 创建一维数组并输出 public class OneDimensionalArray { public static void main(String argas[]) { int i[]= ...
- 学习java随笔第三篇:java的基本数据类型
数据类型 一:整型 1.十进制 2.八进制 八进制数是满8进1,包含0~7的8个数字,在整数前面添加一个"0",表示是八进制数. 3.十六进制 十六进制数是满16进1,包含0~9, ...
- 学习java随笔第十篇:java线程
线程生命周期 线程的生命周期:新建状态.准备状态.运行状态.等待/阻塞状态.死亡状态 示意图: 定义.创建及运行线程 线程: package threadrun; //定义一个实现Runnable接口 ...
- 学习java随笔第七篇:java的类与对象
类 同一个包(同一个目录),类的创建与调用 class Man{ String name; void GetMyName() { System.out.println(name); } } publi ...
- 学习java随笔第五篇:流程控制
条件语句 if(表达式){方法体}else if(表达体)else{方法体} 简写形式:if... 一般形式:if...else... 完整形式:if...else if...else 分支语句 sw ...
- 学习java随笔第四篇:运算符
算术运算符 "+":加法运算符,也可做字符连接用途 "-":减法运算符 "*":乘法运算符 "/":除法运算符 &quo ...
- 浅谈学习C++时用到的【封装继承多态】三个概念
封装继承多态这三个概念不是C++特有的,而是所有OOP具有的特性. 由于C++语言支持这三个特性,所以学习C++时不可避免的要理解这些概念. 而在大部分C++教材中这些概念是作为铺垫,接下来就花大部分 ...
随机推荐
- linux字符图形界面
/etc/inittab 1) 字符界面标识: id:3:initdefault: 2) 图形界面标识: id:5:initdefault: [root@ora9i ~]# vi /etc/i ...
- Eclipse中添加android sdk javadoc和source
在 javadoc location path中添加file:/D:/Android_SDK/sdk/docs/reference/ 在 source attachment中添加为 Externa ...
- 汉企C#面向对象——继承Practice
class Dianqi //创建电器类:父类 { private string _Dianqimingzi; public string Dianqimingzi { get { return _D ...
- 【Android 复习】:Android之ViewFlipper(二)
通过手势移动屏幕 上面是通过屏幕上的按钮来在屏幕间切换的,这看起来多少有点不符合Android的风格,如果要是能通过手势的左右滑动来实现屏幕的切换就比较优雅了. 通过android.view.Gest ...
- java获取天气预报的信息
运行效果: 主要功能: 1,jsp页面输入省份和城市 根据条件获取当地的天气信息 2,java代码 利用第三方的省份和城市的路径地址 本工程主要实现java获取天气预报的信息步骤1,创建工程weath ...
- eclipse安装Hadoop1.1.2版本开发插件
Hadoop1.1.2版本没有直接适合Eclipse的安装插件,需要手动打包jar文件. 我的系统配置: VMware Workstation10 CentOS-6.5-i386 hadoop-1.1 ...
- [LeetCode] 74. Search a 2D Matrix 解题思路
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...
- windows ntp安装及调试
Setting up NTP on Windows It's very helpful that Meinberg have provided an installer for the highly- ...
- pathmunge /etc/profile
pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "a ...
- Clean Code读书笔记
第一章 整洁代码 1.编程要做什么 代码呈现了需求的细节,在某些层面上,这些细节无法被忽略或抽象,必须明确.而将需求明确到机器可以执行的细节程度,就是编程要做的事. 2.项目过程中经常遇到这样的问题: ...

