非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.6 抽象类
非零基础自学Java (老师:韩顺平)
✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】
第10章 面向对象编程(高级部分)
文章目录
- 非零基础自学Java (老师:韩顺平)
- 第10章 面向对象编程(高级部分)
- 10.6 抽象类
- 10.6.1 看个问题
- 10.6.2 解决之道 —— 抽象类快速入门
- 10.6.3 抽象类的介绍
- 10.6.4 抽象类使用的注意事项和细节讨论
- 10.6.5 抽象类使用的注意事项和细节讨论2
10.6 抽象类
10.6.1 看个问题
举个栗子
package com.dingjiaxiong.abstract_;/*** ClassName: Abstract01* date: 2022/9/3 19:57** @author DingJiaxiong*/public class Abstract01 {public static void main(String[] args) {}
}abstract class Animal{private String name;public Animal(String name) {this.name = name;}//所谓抽象方法就是没有实现的方法//> 当一个类中存在抽象方法时,需要将该类声明为 abstract//一般来说,抽象类会被继承,有其子类来实现抽象方法public abstract void eat();
}
10.6.2 解决之道 —— 抽象类快速入门
当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法,这个方法就是抽象方法,用abstract来修饰该类就是抽象类。
10.6.3 抽象类的介绍
用abstract关键字来修饰一个类时,这个类就叫抽象类
访问修饰符 abstract 类名{}
用abstract关键字来修饰一个方法时,这个方法就是抽象方法。
访问修饰符 abstract 返回类型 方法名(参数列表); //没有方法体
抽象类的价值更多作用在于设计,设计者设计好后,交给子类去继承并实现抽象类
10.6.4 抽象类使用的注意事项和细节讨论
- 抽象类不能实例化【继承】
- 抽象类不一定要包含abstract方法,即抽象类可以没有abstract方法
- 一旦类中包含了abstract方法,则这个类必须声明为abstract。
- abstract只能修饰类和方法,不能修饰属性和其他的。
package com.dingjiaxiong.abstract_;/*** ClassName: AbstractDetail01* date: 2022/9/3 20:06** @author DingJiaxiong*/public class AbstractDetail01 {public static void main(String[] args) {// new A();//抽象类不能被实例化}
}//抽象类可以没有abstract方法
abstract class A{public void hi(){System.out.println("hi");}
}//一旦类包含了abstract方法,则这个类必须声明为abstract
abstract class B{public abstract void hi();
}//abstract 只能修饰类和方法,不能修饰属性和其他
class C{// public abstract int n1 = 1;
}
10.6.5 抽象类使用的注意事项和细节讨论2
- 抽象类可以有任意成员【本质还是类】。
- 抽象方法不能有主体,即不能进行实现【括号之后就分号】
- 如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类。
- 抽象方法不能使用private、final和static来修饰【这些关键字和重写相违背】
举个栗子
package com.dingjiaxiong.abstract_;/*** ClassName: AbstractDetail02* date: 2022/9/3 20:12** @author DingJiaxiong*/public class AbstractDetail02 {public static void main(String[] args) {System.out.println("Hello");}
}抽象方法不能使用 private、final 和 static 来修饰,因为这些关键字都是和重写相违背的
abstract class H{public abstract void hi(); //抽象方法
}///如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为 abstract类
abstract class E{public abstract void hi();
}abstract class F extends E{}class G extends E{@Overridepublic void hi() { //这里G就必须重写E中的方法}
}//抽象类的本质还是类,所以可以有类的各种成员
abstract class D{public int n1 = 10;public static String name = "韩老师666";public void hi(){System.out.println("Hi");}public abstract void hello();public static void ok(){System.out.println("Ok");}
}
非零基础自学Java (老师:韩顺平) 第10章 面向对象编程(高级部分) 10.6 抽象类相关推荐
- 零基础自学java的难处_零基础自学Java 在学习中要注意哪些问题
如果是零基础自学Java编程,在学习过程中有很多要注意的问题,想要学好学精必然是件难事,并且可能会走弯路浪费很多时间,短时间内是不可能学成参加工作的,想要成为专业的Java程序员并不容易,技术过硬尤为 ...
- 非零基础自学Golang 第1章 走进Go 1.2 Go语言官方文档 1.3 学好Go 的建议
非零基础自学Golang 文章目录 非零基础自学Golang 第1章 走进Go 1.2 Go语言官方文档 1.3 学好Go 的建议 1.3.1 了解语言特性及自身需求 1.3.2 动手写代码 1.3. ...
- 零基础自学Java编程大概需要多久时间?
零基础自学Java编程大概需要多久时间? 因人而异的. 那么我们怎么去学习才能更加高效呢? 如何快速打好Java基础? 01.准备 学习之路是一项很逆人性的差事,并不是每个人都能够坚持下来,尤其是打基 ...
- 非零基础自学Golang 第1章 走进Go 1.1 Go编程语言概述 1.1.2 Go 语言特性及应用场景
非零基础自学Golang 文章目录 非零基础自学Golang 第1章 走进Go 1.1 Go编程语言概述 1.1.2 Go 语言特性及应用场景 第1章 走进Go 1.1 Go编程语言概述 1.1.2 ...
- 非零基础自学Golang 第18章 HTTP编程(下) 18.2 HTTP服务端 18.2.2 启动HTTP服务器 18.2.3 启动HTTPS服务器
非零基础自学Golang 文章目录 非零基础自学Golang 第18章 HTTP编程(下) 18.2 HTTP服务端 18.2.2 启动HTTP服务器 18.2.3 启动HTTPS服务器 第18章 H ...
- 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量
非零基础自学Golang 文章目录 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量 3.1.1 声明变量 3.1.2 初始化变量 3.1.3 变量值交换 3.1.4 匿名变量 ...
- 非零基础自学Golang 第15章 Go命令行工具 15.4 注释文档(doc)
非零基础自学Golang 文章目录 非零基础自学Golang 第15章 Go命令行工具 15.4 注释文档(doc) 第15章 Go命令行工具 15.4 注释文档(doc) Go语言文档工具go do ...
- 非零基础自学Golang 第17章 HTTP编程(上) 17.3 爬虫框架gocolly 17.3.1 gocolly简介
非零基础自学Golang 文章目录 非零基础自学Golang 第17章 HTTP编程(上) 17.3 爬虫框架gocolly 17.3.1 gocolly简介 第17章 HTTP编程(上) 17.3 ...
- 非零基础自学计算机操作系统 第1章 操作系统概述 习题一
非零基础自学计算机操作系统 第1章 操作系统概述 习题一 [1]什么是操作系统?操作系统有哪些特性? 答:操作系统是管理计算机硬件与软件资源的计算机程序,它的主要特性有并发性.易用性.稳定性和异步性. ...
最新文章
- Android 微信支付步骤
- java两个日期之间的日期_获取两个日期之间的日期形成一个集合
- java中哪个是main函数的合法参数,Java试卷及答案
- linux 按照特定字符换行_在Linus Torvalds建议之后内核淘汰80个字符长度限制
- 自己写cache server之网络框架处理——对比mysql、Oracle(上)
- quartus仿真22:优先编码器74148的级联(详细)
- 《疯狂的程序员》经典语录
- 神舟linux装win7教程,神舟战神G70装win7系统及bios设置教程(神舟G70台式机win10改win7)...
- Lua学习---编译生成lua和luac
- zktime 协议_Zktime8.0安装使用说明及常见故障分析
- 高一计算机教学总结怎么写,高一信息技术教学工作总结
- 记一次LiteIDE因为Delve版本太低无法Debug的处理
- 做了个小工具,可以一键导出所有微信表情包,有趣的表情包,不再只限一个APP使用,【微信表情包吸血鬼】
- 【数学史】大富翁的概率
- 29岁了还一事无成是人生的常态?
- Photoshop文字特效——炫彩效果文字
- H264解码之DDraw显示YUV
- macappstore登不上去_Mac系统打不开appstore如何解决
- 浏览器网站请求全解析
- 玩转STM32F0 Value Line Discovery 之 深入理解 SYSTICK定时器