前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java中抽象类和接口定义

Java中抽象类和接口定义

作者头像
用户7886150
修改于 2020-12-04 09:18:21
修改于 2020-12-04 09:18:21
5840
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java中的抽象

/**

 * 

 * @author zhaocx1

 * 

 */

/*

 * 当多个类中出现相同功能,但是功能主提体不同。 这时可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。

 * 

 * 抽象:看不懂。 

 * 抽象类的特点: 

 * 1.抽象方法一定在抽象类中。 2.抽象方法和抽象类都必须被abstract关键字修饰。

 * 3.抽象类不可以用new创建对象,因为调用抽象方法没意义, 4.抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。

 * 如果子类只覆盖部分抽象方法,那么该子类还是一个抽象类。

 * 

 * 抽象淚和一般類沒有太大的不同。 該如何描述事物,就如何描述失去,只不過,該事物出現了一些看不到的東西。

 * 這些不確定的部分,也是該事物的功能,需要明確出來,但是無法定億主體。 通過抽象方法來表示。

 * 

 * 抽象類比一般類多了個抽象函數。就是在類中可以定義抽象方法, 抽象類不可以實例化。 特殊: 抽象類中可以不定義抽象方法,這樣做僅僅是不讓該類建立對象。

 */

abstract class MyStudent {// 定义一个抽象类

    abstract void study();// 定义抽象方法

    void sleep() {// 定义一个功能

        System.out.println("睡觉");

    }

}

class ChongCiStudent extends MyStudent {// 定义一个类继承抽象类

    void study() {// 覆写抽象类中的方法

        System.out.println("冲刺班学习");// 输出打印内容

    }

}

class BaseStudent extends MyStudent {// 定义一个类继承抽象类

    void study() {// 覆写抽象类中的方法

        System.out.println("基础班学习");// 输出打印内容

    }

}

class AavStudent extends MyStudent {// 定义一个类继承抽象类

    void study() {// 覆写抽象类中的方法

        System.out.println("就业班学习");// 输出打印内容

    }

}

public class AbstractDemo {

    public static void main(String[] args) {

        ChongCiStudent ccs = new ChongCiStudent();// 通过子类new对象,调用覆写的抽象方法

        ccs.study();// 调用覆写的抽象方法

        BaseStudent bs = new BaseStudent();// 通过子类new对象,调用覆写的抽象方法

        bs.study();// 调用覆写的抽象方法

        AavStudent as = new AavStudent();// 通过子类new对象,调用覆写的抽象方法

        as.study();// 调用覆写的抽象方法

    }

}

/**

 * 

 * @author zhaocx1

 * 

 */

/*

 * 练习:假如我们在开发一个系统时需要对员工进行建模,员工包含 3 个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另为还有一个

 * 奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。 员工类:name id pay

 * 经理类:继承了员工,并有自己特有的bonus。

 * 员工类:name id pay 

 * 经 理类:继承了员工,并有自己特有的bonus。

 */

abstract class Employee {// 定义一个抽象类员工

    private String name;// 定义姓名属性

    private String id;// 定义工号属性

    private double pay;// 定义工资属性

    Employee(String name, String id, double pay) {// 构造函数,对对象的属性进行描述

        this.name = name;// 调用本类对象姓名属性

        this.id = id;// 调用本类对象工号属性

        this.pay = pay;// 调用本类对象工资属性

    }

    public abstract void work();// 定义一个抽象方法

}

class Manager extends Employee {// 定义经理类继承抽象类员工

    private int bonus;// 定义经理的奖金属性

    Manager(String name, String id, double pay, int bonus) {// 构造函数,对经理的姓名,工号,工资,奖金属性进行描述

        super(name, id, pay);// 调用父类中的姓名,工号,工资属性

        this.bonus = bonus;// 调用本来奖金属性

    }

    public void work() {// 覆写父类中的抽象方法

        System.out.println("工作");// 输出打印子类覆写方法内容

    }

}

public class AbstractDemo1 {

    public static void main(String[] args) {// 主函数,整个函数的切入点

        Manager m = new Manager("张三", "XYZY", 10000.85, 30000);// new子类对象,传入具体的姓名,工号,工资,奖金属性已进行初始化

        m.work();// 调用子类中的方法

    }

}

/**

 * 

 * @author zhaocx1

 *

 */

/*

 * 接口:初期理解 ,可以认为是一个特殊的抽象类。

 * 当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

 * 接口:interface

 * 

 * class用于定义类,interface用于定义接口。

 * 接口定义时,格式特点:

 * 1.接口中常见定义:常量,抽象方法。

 * 2.接口中的成员都有固定修饰符。

 *   常量:public static final 类与类是继承关系,类与接口是实现关系,接口与接口是继承关系。

 *   抽象方法:public abstract

 *记住:接口中的成员都是public   

 *

 *接口是不可以创建对象的 ,因为有抽象方法。

 *需要被子类实现的,子类对接口中的方法都覆盖后,子类才可以实例化。

 *否则子类是一个抽象类。

 *

 *接口可以被类多实现。也是对多继承不支持的转换形式。Java支持多实现。

 */

interface Inter//定义一个接口

{

    public static final int NUM=3;//定义接口中的常量,必须遵循规定格式 public static final

    public abstract void show();//定义接口中的方法,方法是抽象的,格式是 public abstract

}

interface InterA//定义一个接口

{

    public abstract void method();//定义接口中的方法

}

class ItDemo//定义一个类

{

    public void function(){}//定义类中的方法

}

class Test extends ItDemo implements Inter,InterA//类在继承类的同时可以实现多个接口

{

    public void show(){}//覆写接口中的方法

    public void method(){}

}

public class InterfaceDemo {

    public static void main(String[] args)//主函数,整个函数的切入点

    { 

        Test t=new Test();//对紫劣对象进行实例化

        System.out.println(t.NUM);//调用接口中的成员变量,输出打印内容

        System.out.println(Test.NUM);

        System.out.println(Inter.NUM);

    }

}

/**

 * 

 * @author zhaocx1 练习:一个子类继承一个父类的同时实现一个接口

 */

abstract class BeStudent {//定义一个抽象类

    abstract void study();//定义抽象类中的一个抽象方法

    void sleep() {//定义一般方法

        System.out.println("sleep");//输出打印方法内容

    }

} // 继承是其中的一类,接口是功能的扩展。

interface Smoking {//定义一个接口

    public abstract void smoke();//定义接口中的方法

}

class ZhangSan extends BeStudent implements Smoking {//定义一个子类继承一个抽象类,同时实现一个接口

    void study() {//覆写抽象类中的方法

        System.out.println("xuexijava");//输出打印方法内容

    }

    void sleep() {//覆写抽象类中的方法

        System.out.println("shuijiao");//输出打印方法内容

    }

    public void smoke() {//覆写接口中的抽象方法

        System.out.println("chouyan");//输出打印方法内容

    }

}

public class InterfaceDemo1 {

    public static void main(String[] args) {//主函数,整个函数的切入点

        new ZhangSan().study();//对子类进行实例化,并调用子类中的方法

        new ZhangSan().sleep();

        new ZhangSan().smoke();

    }

}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于Java中的对象、类、抽象类、接口、继承之间的联系
寒假学习JavaSE基础,其中的概念属实比较多,关联性也比较大,再次将相关的知识点复习一些,并理顺其中的关系。
xbhog
2021/03/20
9850
09(02)总结final,多态,抽象类,接口
(4)抽象类的练习 A:猫狗案例练习 B:老师案例练习 C:学生案例练习 D:员工案例练习 /* A: 猫狗案例 具体事物:猫,狗 共性:姓名,年龄,吃饭 分析:从具体到抽象 猫: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:吃饭(猫吃鱼) 狗: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:吃饭(狗吃肉) 因为有共性的内容,所以就提取了一个父类。动物。 但是又由于吃饭的内容不一样,所以吃饭的方法是抽象的, 而方法是抽象的类,类就必须定义为抽象类。
Java帮帮
2018/03/15
8680
Java 抽象类
普通类可以直接产生实例化对象,并且再普通类中可以包含有构造方法、普通方法、Static方法、常量变量等内容。而所谓的抽象类就是指再普通类的结构里面增加“抽象方法”的组成部分。
Mirror王宇阳
2020/11/10
8240
【Java零基础入门篇】第 ⑤ 期 - 抽象类和接口(一)
随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。
命运之光
2024/03/20
1150
【Java零基础入门篇】第 ⑤ 期 - 抽象类和接口(一)
【JavaSE】抽象类基本使用
2) 抽象类不一定要包含 abstract方法。也就是说,抽象类可以没有abstract方法,还可以有实现的方法。
兮动人
2022/02/21
3670
【JAVA抽象类和接口】
在Java中Object类是所有类的父类。默认它们都继承了Object这个父类,所有类的引用都可以用Object的引用来进行接收。
ImAileen
2024/12/08
1890
【JAVA抽象类和接口】
【JAVA】抽象类和接口
定义一个类时常常需要定义一些成员方法用于描述类的行为特征,但有时这些方法的实现方式是无法确定的。例如上期定义的 Animal类中的 shout()方法用于描述动物的叫声,但是不同的动物叫声也不相同,因此在 shout()方法中无法准确描述动物的叫声。
颜颜yan_
2022/12/18
8920
【JAVA】抽象类和接口
Java 中接口和抽象类的 7 大区别!
Java 是一门面向对象的编程语言,面向对象的编程语言有四大特征:抽象、封装、继承和多态。 而本文介绍的接口和抽象类就是面向对象编程中“抽象”的具体实现,也就是说接口和抽象类都是用来定义实体类的公共行为的,它们是对实体类(对象)更高层次的抽象。​
磊哥
2021/12/27
1.6K0
Java 中接口和抽象类的 7 大区别!
java--第7章 抽象类与接口
它包含一个抽象方法getArea(),从Shape类派生出Rectangle类和Circle类,这两个类都用getArea()方法计算对象的面积。编写应用程序使用Rectangle类和Circle类输出长5.2、宽13.25的矩形的面积及半径为5.2的圆的面积,要求输出结果保留两位小数。
北山啦
2022/11/27
5120
java--第7章  抽象类与接口
Java学习【抽象类和接口】
抽象类是一种不能被实例化的类,其中至少包含一个抽象方法(即没有实现体的方法)。抽象类通常用于定义一组相关的类的共同特征,并强制其子类实现特定的方法。
2的n次方
2024/10/15
660
Java学习【抽象类和接口】
【JavaSE】Java入门七(抽象类和接口详解)
抽象类中可以包含被abstract修饰的抽象方法,抽象方法在抽象类中仅仅被声明,具体的实现代码可以在继承他的类中被实现。
小皮侠
2024/04/08
1940
【JavaSE】Java入门七(抽象类和接口详解)
Java抽象类 详解
普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。
用户7886150
2020/12/18
4820
【Java】抽象类和接口
2.抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则编译器会报错,但如果子类也是抽象类,那么其子类可以不对父类中的抽象类进行重写
喜欢做梦
2024/11/25
1820
【Java】抽象类和接口
小朋友学Java(9):抽象类与接口
之前提过面向对象有三大特性:封装、继承、多态。 还有另一种说法,即面象对象有四大特性:抽象、封装、继承、多态。 这两种说法都是对的,不必拘泥于哪种说法。关键要能理解这些特性的含义。 在Java中,可以通过两种形式来体现面向对象的抽象:抽象类和接口。 一、抽象类 (一)抽象方法 在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为: abstract void fun(); 抽象方法必须用abstract关键字进行修饰。 为什么需要抽象方法呢?因
海天一树
2018/04/17
6050
小朋友学Java(9):抽象类与接口
【Java 学习】:抽象类&接口
💢💢在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。
IsLand1314
2024/10/15
1740
【Java 学习】:抽象类&接口
【Java SE】抽象类和接口
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
xxxflower
2023/04/16
3000
【Java SE】抽象类和接口
Java 抽象类、接口
(1) 抽象类和抽象方法都必须用 abstract 关键字来修饰。 (2) 抽象类不能被直接实例化,也就是不能用new关键字去产生对象。 (3) 抽象方法只需声明,而不需实现。 (4) 含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆写所有的抽象方法后才能被实例化,否则这个子类还是抽象的
Michael阿明
2021/09/06
5430
Java——抽象类与接口的前世今生
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架。
说故事的五公子
2020/04/13
8450
java中的抽象类
抽象类(Abstract Class)是Java中一个不能被直接实例化的类,它使用abstract关键字进行声明。抽象类可以包含抽象方法,也可以包含具体方法和变量。抽象类的主要目的是为了提供一个通用的模板,让其他子类根据这个模板进行扩展。
用户11397231
2024/12/10
1760
java中的抽象类
Java面向对象—抽象类和接口
  在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:
翎野君
2023/05/12
2520
相关推荐
关于Java中的对象、类、抽象类、接口、继承之间的联系
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档