JAVA核心技术--继承(1)
1、继承:向上追溯,对同一批类的抽象,延续和扩展父类的一切信息!
1)关键字:extends 例如,父类是Animal,子类是Dog; eg: public class Dog extends Animal
2)父类也称超类,可用super引用
3)子类也称派生类:必须继承父类,可以继承父类的属性和方法
重写:在子类中,方法名、形参、个数、类型、顺序相同! 关键字:@Override
重载:在同一个类中,名称相同的, 形参个数、类型、顺序不同!
注意:继承父类的方法时,因父类不满足要求了,我们需要重写父类的方法。
eg: @Override
public void eat() {
System.out.println("猫吃鱼");
}
4)注意事项:属性不能被重写!
私有方法、静态方法、final方法 不能被重写!
重写前提需要继承!
2、继承的好处:
重用代码、避免重复、重写方法、新曾方法、提高了效率!
3、Object类
是所有类的祖先,任何一个类都直接或者是间接的继承了Object!
如果一个类没有显示extends任何类,默认的继承Object类!
4、例子:功能:Aniaml类,Dog类,Cat类
/*
*Animal 类
*/ public class Animal extends Object{
//颜色
String color;
//年龄
int age; public void eat(){
System.out.println("动物吃饭");
} public void sleep(){
System.out.println("动物睡觉");
} public void introduce(){
System.out.println("自我介绍:颜色:"+color+",age:"+age);
}
@Override
public String toString() {
return "动物的颜色:"+color+",年龄:"+age;
} }
//Dog类 public class Dog extends Animal{
//狗自己特有的属性
String name;
String type; //特有的看门的方法
public void guard(){
System.out.println("小狗"+name+"在看门,是人类的好朋友");
} @Override
public void eat() {
System.out.println("小狗"+name+"在吃饭");
}
@Override
public void sleep() {
System.out.println("小狗"+name+"在睡觉");
} @Override
public void introduce() {
System.out.println("dog:color:"+color+",age:"+age+",name"+name+",type:"+type);
}
@Override
public String toString() {
return "狗的名称:"+name+",年龄;"+age+"岁,种类"+type+",颜色:"+color;
}
}
//Cat类 public class Cat extends Animal{
String name;
String sex;
@Override
public void eat() {
System.out.println("猫吃鱼");
} @Override
public void sleep() {
System.out.println("猫看不见它睡觉");
} @Override
public void introduce() {
System.out.println(name+"喵喵的叫");
}
@Override
public String toString() {
return "猫的名称:"+name+",年龄:"+age+"岁,性别"+sex+",颜色:"+color;
} }
//TestAnimal public class TestAnimal {
public static void main(String[] args) {
Animal an =new Animal();
an.age=2;
an.color="yellow";
an.eat();
an.sleep();
an.introduce();
System.out.println(an.toString());
System.out.println("---------------"); Dog dog =new Dog();
dog.age=3;
dog.color="black and blue";
dog.name="旺财";
dog.type="拉布拉多";
dog.eat();
dog.sleep();
dog.introduce();
dog.guard();
System.out.println(dog.toString());
System.out.println("---------------"); Cat cat =new Cat();
cat.age=2;//父类的属性
cat.color="白色";//父类的属性
cat.name="图图";//孩子自己独有的
cat.sex="母";//孩子自己独有的
cat.eat();//重写了
cat.sleep();//重写了
cat.introduce();//重写了
System.out.println(cat);
} }
JAVA核心技术--继承(1)的更多相关文章
- JAVA核心技术--继承
1.继承:向上追溯,对同一批类的抽象,延续和扩展父类的一切信息! 1)关键字:extends 例如,父类是Animal,子类是Dog; eg: public class Dog exte ...
- 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承
<Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...
- Java核心技术点之泛型
1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小 ...
- Java核心技术点之集合框架
1. 概述 Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容 ...
- java核心技术学习笔记之一程序设计概述
Java 核心技术之一程序设计概述 一. Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...
- Java的继承、封装与多态
Java的继承.封装与多态 基本概念 面向对象OO(Object Oriented):把数据及对数据的操作方法放在一起,作为一个相互依存的整体,即对象. 对同类对象抽象出共性,即类. 比如人就是一个类 ...
- Java核心技术第五章——1.类、超类、子类(2)
继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译 ...
- java的优点和误解 《java核心技术卷i》第一章
<java核心技术卷i>第一章主要内容包括三点: 1:Java白皮书的关键术语:描述Java的十一个关键字: 2:Java applet 3 :关于Java的常见误解 1:第一章:Ja ...
- JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)
一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...
随机推荐
- 对opencv读取的图片进行像素调整(1080, 1920) 1.cv2.VideoCapture(构造图片读取) 2.cv2.nameWindow(构建视频显示的窗口) 3.cv2.setWindowProperty(设置图片窗口的像素) 4.video_capture(对图片像素进行设置)
1. cv2.VideoCapture(0) #构建视频抓捕器 参数说明:0表示需要启动的摄像头,这里也可以写视频的路径 2. cv2.nameWindow(name, cv2.WINDOW_NORM ...
- [svc]linux中的文件描述符(file descriptor)和文件
linux中的文件描述符(file descriptor)和文件 linux为了实现一切皆文件的设计哲学,不仅将数据抽象成了文件,也将一切操作和资源抽象成了文件,比如说硬件设备,socket,磁盘,进 ...
- Failed to start LSB: start and stop MariaDB
Failed to start LSB: start and stop MariaDB */--> Failed to start LSB: start and stop MariaDB Tab ...
- Struts数据回显和模型驱动
prams拦截器,可以把请求数据自动填充的action的属性中 举例1: JSP <input type=text name=userName /> <input type=text ...
- c#/netcore/mvc视图中调用控制器方法
1: public class HomeController : Controller { public ActionResult Index() { ...
- 为什么能抓到网站https传输的明文密码?------顺便说说“知乎”和“支付宝”的安全性对比
在多数人看来, https是安全的, 因为https和secure http嘛, 真的是这样吗? 一些人认为, https是加密传输, 所以抓到包也没有用, 是密文的. 真是的这样吗? 我今天无意抓到 ...
- jsp部分
1,struts2下拉框,直接赋值.<s:select list="#{'':'---请选择---','0':'否','1':'是'}"listKey="key&q ...
- docker 入门 命令
docker 命令 docker images 镜像列表 docker ps 服务列表 docker 隐藏打包文件 .dockerignore .git node_modules npm-debug. ...
- 【.NET】关于.NET前后台提示框的那点事
前言 关于提示框,或多或少都用到过,提示框常见方式两种:js原生alert() 和 div模拟弹层:下面以一个常见的需求业务场景来展现提示框的那点事: 正文内容 客户:需求方: 小白:实现方(全权负责 ...
- python计算机二级考试知识点——文件操作
1. 文件的使用:文件打开.关闭和读写 python通过open函数打开一个文件,并返回一个操作文件的变量,语法形式如下: <变量名>=open(<文件路劲及文件名>,< ...