博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java封装、继承和抽象的实例
阅读量:5788 次
发布时间:2019-06-18

本文共 1730 字,大约阅读时间需要 5 分钟。

工具:MyEclipse 6.5

首先新建一个文件夹,我们这里做的是一个关于动物睡觉的实例,所以我的文件夹名字是AnimailSleep,然后在src下面建两个包Animail和Sleep

因为所有的动物都有相同的属性,和不同的睡觉方式,

所以在Animail包里面我们要封装这些属性和睡觉的方法,下面代码是Animail这个包里的animail类的属性封装

package Animail;

//抽象类(关键字abstract)这里将animail类抽象化了,
public abstract class animail {
 //封装,将我们认为是相同的属性列在animail类里,这里有动物名字(name)年龄(age)和颜色(color)
  private String name;
  private int age;
  private String color;
  //创建一个抽象方法 sleep(),抽象方法要加关键字(abstrct),抽象方法没有方法体(方法后面的花括号),因为子类的方法不一定全都相同,所以要自己定义
 public abstract void sleep();
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
 }

//这里是动物名字封装,setName(String name)用于给动物名字赋值,getName()用于取出已存的值,下面的setAge/getAge等也是这样

 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 String getColor() {
  return color;
 }
 public void setColor(String color) {
  this.color = color;
 }

}

我们在父类里将动物名(name),年龄(age),颜色(color)进行封装了,并将类和类里的Sleep()方法抽象化了,接下来是在子类里继承

在Sleep包中建一个睡觉测试(SleepTest)类,

package Sleep;

//这段代码要注意

import Animail.animail;

//子类(SleepTest)继承父类(animail)关键字(extends

public  class SleepTest extends animail{

//这是小狗的测试类,公共一个睡觉sleep()方法,

  public void sleep(){
   System.out.println("小狗晚上是不睡觉的");
  }

 public static void main(String[] args) {

  //因为抽象类不能被new,所以让父类(animail)new,子类(SleepTest();)接收实现
  animail a=new SleepTest();
  a.setAge(3);
  a.setColor("黑色");
  a.setName("黑虎");
  System.out.println("小狗名字:"+ a.getName());
  System.out.println("小狗颜色:"+ a.getColor());
  System.out.println("小狗年龄:"+ a.getAge());
  System.out.println("------------");
  a.sleep();
 }

}

 

如果代码没有错,运行就会输出

小狗名字:黑虎

小狗颜色:黑色
小狗年龄:3
------------
小狗晚上是不睡觉的

谢谢观看!希望能帮到你@_@

转载于:https://www.cnblogs.com/qq1206583608/p/3375316.html

你可能感兴趣的文章
基于浏览器的开源“管理+开发”工具,Pivotal MySQL*Web正式上线!
查看>>
JavaScript(五):变量的作用域
查看>>
知识图谱在互联网金融中的应用
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
wpf 自定义窗口,最大化时覆盖任务栏解决方案
查看>>
【docker】关于docker 中 镜像、容器的关系理解
查看>>
information_schema系列五(表,触发器,视图,存储过程和函数)
查看>>
瓜子二手车的谎言!
查看>>
[转]使用Git Submodule管理子模块
查看>>
DICOM简介
查看>>
Scrum之 Sprint计划会议
查看>>
List<T> to DataTable
查看>>
[Java]Socket和ServerSocket学习笔记
查看>>
stupid soso spider
查看>>
svn命令在linux下的使用
查看>>
There is insufficient system memory to run this query 错误
查看>>
基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
查看>>
我们奋斗着并将持续奋斗 ----暨清华D-Lab创新基地揭牌仪式
查看>>
MySQL主从同步相关-主从多久的延迟?
查看>>
【MyBatis框架】MyBatis入门程序第二部分
查看>>