抽象类+抽象方法

article/2025/10/16 18:15:50

一、概念

1、抽象类:(用abstract修饰)

Java中可以定义没有方法体的方法,该方法由子类来具体实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类。

2、抽象方法 (用abstract修饰)

在java中没有方法体的方法称为抽象方法

二、关系

在抽象类中可以定义抽象方法且是可以定义无数个(0-n)

在抽象类中定义抽象方法,目的是为了为子类提供一个通用的模板,子类可以在模板的基础上进行开发,先重写父类的抽象方法,然后可以扩展子类自己的内容。抽象类设计避免了子类设计的随意性,通过抽象类,子类的设计变得更加严格,进行某些程度上的限制。使子类更加的通用。

//4.一个类中如果有方法是抽象方法,那么这个类也要变成一个抽象类。
//5.一个抽象类中可以有0-n个抽象方法
public abstract class Person {//1.在一个类中会有一类方法,子类对这个方法非常满意,无需重写直接使用public void eat(){System.out.println("一顿不吃是王八");}//2.在一个类中,会有一类方法,子类对这个方法永远不满意,会对这个方法进行重写。//3.一个方法的方法体去掉,然后被abstract修饰,那么这个方法就变成了一个抽象方法public abstract void say();public abstract void sleep();
}//6.抽象类可以被其他类继承://7.一个类继承一个抽象类,那么这个类可以变成抽象类//8.一般子类不会加abstract修饰,一般会让子类重写父类中的抽象方法//9.子类继承抽象类,就必须重写全部的抽象方法//10.子类如果没有重写父类全部的抽象方法,那么子类也可以变成一个抽象类。//abstract class Student extends Person{}
class Student extends Person{@Overridepublic void say() {System.out.println("我是大同人,岗喜欢说大同话。。");}@Overridepublic void sleep() {System.out.println("大同人喜欢撇bi");}
}
class Demo{public static void main(String[] args) {//11.创建抽象类的对象:-->抽象类不可以创建对象//Person p = new Person();//12、创建子类对象Student s = new Student();s.sleep();s.say();//13、多态的写法:父类引用指向子类对象:Person p = new Student();p.say();p.sleep();}
}

三、抽象具体使用

1.在一个类中会有一类方法,子类对这个方法非常满意,无需重写直接使用

2.在一个类中,会有一类方法,子类对这个方法永远不满意,会对这个方法进行重写。
3.一个方法的方法体去掉,然后被abstract修饰,那么这个方法就变成了一个抽象方法

4.一个类中如果有方法是抽象方法,那么这个类也要变成一个抽象类。
5.一个抽象类中可以有0-n个抽象方法

《抽象的子类必须继承》

6.抽象类可以被其他类继承:
7.一个类继承一个抽象类,那么这个类可以变成抽象类
8.一般子类不会加abstract修饰,一般会让子类重写父类中的抽象方法

        子类继承抽象父类中的方法时要重写


 9.子类继承抽象类,就必须重写全部的抽象方法
10.子类如果没有重写父类全部的抽象方法,那么子类也可以变成一个抽象类。

        抽象(父)类无法创建对象,子类继承重写后不是抽象类后可创建对象

代码解释:

class Demo{
public static void main(String[] args) {
//11.创建抽象类的对象:-->抽象类不可以创建对象
//Person p = new Person();----》无法创建//12、创建子类对象
Student s = new Student();
s.sleep();
s.say();
//13、多态的写法:父类引用指向子类对象:
Person p = new Student();
p.say();
p.sleep();
}
}

四、作用

抽象类的意义就在于:为子类提供统一的规范的模板,子类必须实现相关的抽象方法


http://chatgpt.dhexx.cn/article/jnahBqC7.shtml

相关文章

Java中的抽象方法是什么,怎么用?

抽象方法… 听着就很抽象的样子 脑中不禁浮现出了各种抽象画的图像 缩在被窝里打起了退堂鼓 但是! Java中的抽象没那么难 抽象方法是个啥? 通俗来说 就是不知道该咋做的方法 先别晕 我给你举个小栗子 我们创建一个类,什么类呢?…

抽象类和抽象方法(Java)

抽象类和抽象方法(Java) 文章目录 抽象类和抽象方法(Java)介绍定义格式注意事项练习 介绍 抽象方法:将共性的行为(方法)抽取到父类之后,由于每一个子类执行的内容是不一样&#xff…

什么是抽象方法

前言:在读这篇文章的同学大概率是一位初学者,这一阶段应该是javase最困难的时候(多态性以及面向接口编程),也是最重要的时候。提前祝大家把这该死的java学完!!!(本文不会…

python 凸优化

定义函数,存在多个局部极小值,建议在局部优化之前进行全局优化,缩小范围 def fm(p):x, y preturn (np.sin(x) 0.05 * x ** 2 np.sin(y) 0.05 * y ** 2) x np.linspace(-10, 10, 50) y np.linspace(-10, 10, 50) X, Y np.meshgrid(x, y…

凸优化概述

目录 凸优化概述 1 概述 2 凸集 3 凸方法 3.1 凸性的一阶条件 3.2 凸性的二阶条件 3.3 詹森不等式 3.4 分段集 4 凸优化问题 凸优化概述 1 概述 也就是说,给定一个函数,我们想找到使最小化(或最大化)。目前已有的方法包含:最小二乘…

凸优化入门

主要的目录 1-2:推荐书目,引言,常见例子,优化问题分类,发展史 3-4:仿射/凸/凸锥 集/组合/包 5-6:几种重要的凸集:超平面与半空间/球和椭球/多面体/单纯形/对称(半)(正定)矩阵 7-8:…

凸优化系列——最优化问题

1. 凸优化问题介绍 凸优化问题如下: 为什么要求不等式约束是线性函数呢?我们知道凸函数的下水平集是凸集。 为什么要求等式约束是线性的呢?线性函数表示一个超平面,他也是凸集 也就是说,对于凸优化问题,…

凸优化 (中科大

凸优化是优化中比较容易的一种 优化optimization,即数学规划。 优化规划 优化:(包含三个要素)可行解的集合、定义最优、找出 任何一个优化问题,总可以写成这样的形式: minimize 函数 ,最…

凸优化学习

”凸优化“ 是指一种比较特殊的优化,是指求取最小值的目标函数为凸函数的一类优化问题。凸优化就是:1、在最小化(最大化)的要求下,2、目标函数是一个凸函数(凹函数),3、同时约束条件…

理解凸优化

导言 凸优化(convex optimization)是最优化问题中非常重要的一类,也是被研究的很透彻的一类。对于机器学 习来说,如果要优化的问题被证明是凸优化问题,则说明此问题可以被比较好的解决。在本文中,SIGAI将为…

优化算法——凸优化的概述

一、引言 在机器学习问题中,很多的算法归根到底就是在求解一个优化问题,然而我们的现实生活中也存在着很多的优化问题,例如道路上最优路径的选择,商品买卖中的最大利润的获取这些都是最优化的典型例子,前面也陆续地有一…

凸优化基础知识

目录 一、计算几何是研究什么的? 二、计算几何理论中(或凸集中)过两点的一条直线的表达式,是如何描述的?与初中数学中那些直线方程有什么差异?有什么好处?(按自己的体会) 1、凸集中 2、初中…

优化问题---凸优化基本概念

目录 1.凸优化到底是什么? 1.1 基本概念 1.2 凸优化和非凸优化 2、集合概念 2.1 仿射集、仿射包、仿射组合 2.2 凸集、凸包、凸组合 2.3 锥、凸锥 3.凸函数与非凸函数 4.总结 1.凸优化到底是什么? 1.1 基本概念 凸优化就是优化问题的一个特例…

toLower toUpper

2019独角兽企业重金招聘Python工程师标准>>> 1.根据二进制规律很容易就发现 char toLower(char x) {if (x > A && x < Z)return (x | 0x20);return x; }char toUpper(char x) {if (x > a && x < z)return (x & 0xDF);return …

C++ Reference: Standard C++ Library reference: C Library: cctype: toupper

C官方参考链接&#xff1a;https://cplusplus.com/reference/cctype/toupper/ 字符转换功能两个在字母大小写之间转换的函数&#xff1a; 函数toupper int toupper ( int c ); 将小写字母转换为大写字母 如果c是一个小写字母并且具有一个大写字母的等价物&#xff0c;则将c…

c语言中toupper函数作用,C语言中toupper 是什么?

牛魔王的故事 toupper&#xff0c;是一种计算机用语&#xff0c;用来将字符c转换为大写英文字母。C语言原型extern int toupper(int c);用法#include 功能将字符c转换为大写英文字母说明如果c为小写英文字母&#xff0c;则返回对应的大写字母&#xff1b;否则返回原来的值。扩展…

sqlite下载安装

安装教程 第一步&#xff1a;首先先到官网下载:https://www.sqlite.org/download.html 第二步&#xff1a;选择与自己电脑合适的系统 第三步&#xff1a;下载成功&#xff0c;全部解压 第四步&#xff1a;配置变量 我的电脑右击->属性->高级系统设置->高级->…

sqlite expert(sqlite数据的第三方工具)64位下载安装

官网太慢&#xff0c;这里从腾讯软件中心下载. https://pc.qq.com/search.html#!keywordsqliteexpert 如图&#xff0c;选择64位&#xff0c;普通下载(不用安装腾讯软件管家)即可: 之后&#xff0c;点击 SQLiteExpertPersSetup32-5.3.3.389.exe 一直下一步即可。 也可以从官网…

【SQLite预习课1】SQLite简介——MySQL的简洁版

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;浙江某公司软件工程师&#xff0c;负责开发管理公司OA、CRM业务系统&#xff0c;全栈领域优质创作者&#xff0c;CSDN学院、蓝桥云课认证讲师&#xff0c;开发过20余个前后端分离实战项目&#xff0c;主要发展方向为Vue…

SQLite数据库管理工具,可视化工具GUI/SQLiteExpert/SQLiteStudio/SQLiteBrowser

1、Navicat Premium【商业软件&#xff0c;大而全】 Navicat Premium 是一套数据库开发工具&#xff0c;让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。 Navicat Premium | 以单一的 GUI 同时连接不同类型的数据…