java新手笔记14 类继承示例
1.Person
package com.yfs.javase; public class Person { private String name;
private int age;
private char sex; private void privateMehtod() {
System.out.println("call privateMehtod()...");
} public Person() {
//System.out.println("创建Perosn对象...");
} public Person(String name) {
this.name = name;
} public Person(String name, int age, char sex) {
this.name = name;
this.age = age;
this.sex = sex;
} public void introduce() {
System.out.println("I am Person....");
} public String toString() {
return "姓名:" + name + " 年龄 :" + age + " 性别:" + sex;
} public void speak() {
System.out.println(name + " 工作了吗?");
} public void sleep() {
System.out.println(name + " 睡觉了吗?");
} public void eat() {
System.out.println(name + " 吃了吗?");
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public char getSex() {
return sex;
} public void setSex(char sex) {
this.sex = sex;
} }
2.Student
package com.yfs.javase; //实现代码重用 单继承
public class Student extends Person {// 继承Person private int score; @Override
public void introduce() {
System.out.println("I am student...");
}
// 覆盖 重写父类的方法
@Override
public String toString() {
return super.toString() + " 成绩:" + score;
} public int getScore() {
return score;
} public void setScore(int score) {
this.score = score;
} public Student() {
System.out.println("创建Student对象...");
} // 扩展方法
public void study() {
System.out.println(getName() + " 在学习...");
} }
3.Teacher
package com.yfs.javase; public class Teacher extends Person {
private String job; public String getJob() {
return job;
} public void setJob(String job) {
this.job = job;
} @Override
public void introduce() {
System.out.println("I am teacher...");
} }
4.test1
package com.yfs.javase; public class Demo1 { public static void main(String[] args) {
Person p1 = new Person();
p1.setName("张三"); Student s1 = new Student();
s1.setName("李四"); Teacher t1 = new Teacher();
t1.setName("王五"); p1.speak();
s1.speak();
s1.study();
t1.introduce(); //s1 = t1;//类型不匹配 都是person子类
//p1.study(); 子类的方法属性不能访问
//里氏替换
Person p2 = s1;//父类的引用指向子类对象 p2 = new Student();
p2.setName("Tom"); p2.sleep();
//对象操作由声明类型决定
//p2.study();//计算机技术人员
//具体执行由对象决定 p2 中具体是什么对象 p2 = new Teacher(); //多态 方法覆盖
p2.introduce();//父类声明的方法 子类覆盖父类的方法 } }
5.test2
package com.yfs.javase; public class Demo2 { public static void main(String[] args) {
Person p1 = new Person();
p1.setName("张三"); Student s1 = new Student();
s1.setName("李四"); Teacher t1 = new Teacher();
t1.setName("王五"); Person p2 = new Student();
p2.setName("Tom"); //变回去 强制转换
Student s2 = (Student)p2;
s2.study(); //Teacher t2 = (Teacher)p2; //查看对象的类型 getClass()
System.out.println(p2.getClass().getName());
System.out.println(t1.getClass().getName()); //s1 = p1;
p1 = s1;
System.out.println(p1);
System.out.println(s1);
s1.setAge(20);
p1.setSex('男');
System.out.println(p1);
System.out.println(s1);
//p1.study(); } }
java新手笔记14 类继承示例的更多相关文章
- java新手笔记9 类的封装示例
1.bank类 package com.yfs.javase; //类封装 public class BankCard { //属性 int balance;//默认0 实例变量 分配给每个对象一个 ...
- java新手笔记18 类比较
1.Shap类 package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 // ...
- java新手笔记5 类
1.进制转换 /* 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时, 低于10万元的部分按10%提成,高于10万元的部分,可提成7.5 ...
- java新手笔记11 类的静态属性、方法(单例)
1.Person类 package com.yfs.javase; public class Person { String name;//每个对象上分配 与对象绑定 int age; char se ...
- JAVA自学笔记14
JAVA自学笔记14 1.正则表达式 1)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.其实就是一种规则.有自己的特殊应用 2)组成规则: 规则字符在java.util.rege ...
- c++中的类(class)-----笔记(类继承)
1,派生类继承了基类的所有成员函数和数据成员(构造函数.析构函数和操作符重载函数外). 2,当不指明继承方式时,默认为私有继承. 3,基类的私有成员仅在基类中可见,在派生类中是不可见的.基类的私有成员 ...
- Java学习笔记——File类之文件管理和读写操作、下载图片
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...
- Java学习笔记之---类和对象
Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态 例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...
- Java的对象与类,继承
Java的对象与类,继承 题目1.Java类的建立与使用 设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名.当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的 ...
随机推荐
- GiftWrapping算法解决二维凸包问题
一.问题描述 凸集(Convex Set): 任意两点的连线都在这个集合内的集合就是一个凸集. ⒈对于一个集合D,D中任意有限个点的线性组合的全体称为D的凸包. ...
- Golang项目目录结构组织
其实golang的工程管理还是挺简单的,完全使用目录结构还有package名来推导工程结构和构建顺序. 当然,首先要说的是环境变量$GOPATH,项目构建全靠它.这么说吧,想要构建一个项目,就要将这个 ...
- vmwear 及docker
1.安装vmwear,开启cpu虚拟化 2.http://jingyan.baidu.com/article/eae0782787b4c01fec548535.html 3.docker
- AptanaStudio3 安装在win7 64bit时遇到的问题
最近在研究前端语言,想起可以使用AptanaStudio这个前端利器,没想到安装时却遇到波折.先从网上下载了Aptana版本 3.6.0 64bit问题1 安装进度缓慢,第一次安装时,显示downlo ...
- ThinkPHP函数详解:M方法
M方法用于实例化一个基础模型类,和D方法的区别在于:1.不需要自定义模型类,减少IO加载,性能较好:2.实例化后只能调用基础模型类(默认是Model类)中的方法:3.可以在实例化的时候指定表前缀.数据 ...
- android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现
android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现 首先看到selector的属性: android:state_focus ...
- 【Servlet】Filter过滤器的编写和配置
Servlet的Filter介绍 在Servlet作为过滤器使用时,它可以对客户的请求进行过滤处理,当它处理完成后,它会交给下一个过滤器处理,就这样,客户的请求在过滤链里一个个处理,直到请求发送到目标 ...
- leecode 每日解题思路 152 Maximun Product Subarray
问题描述: 问题链接:152 Maximum Product Subarray 在经典的算法解析中, 有关的分治和动态规划的,经典题型之一就是求最大子段和, 这道题就是他的变形:求最大子段积; 这个问 ...
- android开发工具类之获得WIFI IP地址或者手机网络IP
有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限: <uses-permission android:name="and ...
- 微信小程序的一些限制
小程序的一些限制: 不支持HTML.没有 Dom.网页用的 JS.CSS 基本要全部重写,WXML 的语法和 HTML 差异还挺大,基本是一个个照着手册的属性去改.CSS 选择器不支持级联. 小程序源 ...