JAVA学习–Abstract使用方法

JAVA学习–Abstract使用方法

* abstract:抽象的,可以用来修饰类、方法
 

*


 * 1.abstract修饰类:抽象类


 * 1)不可被实例化


 * 2)抽象类有构造器 (凡是类都有构造器)


 * 3)抽象方法所在的类,一定是抽象类。


 * 4)抽象类中可以没有抽象方法。


 *


 * 2.abstract修饰方法:抽象方法


 * 1)格式:没有方法体,包括{}.如:public abstract void eat();


 * 2)抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法。


 * 3)若子类继承抽象类,并重写了所有的抽象方法,则此类是一个”实体类”,即可以实例化


 * 4)若子类继承抽象类,没有重写所有的抽象方法,意味着此类中仍有抽象方法,则此类必须声明为抽象的!


 *
 
 
 1 public class TestAbstract {
 2     public static void main(String[] args) {
 3         //Person p1 = new Person();
 4         //p1.eat();
 5        
 6         Student s = new Student();
 7         s.eat();
 8        
 9         Person p = new Student();//多态
10         p.eat();
11        
12     }
13 }
14 
15 abstract class Creator{
16     abstract void breath();
17 }
18 
19 abstract class Person extends Creator{
20     String name;
21     public abstract void eat();
22     public abstract void walk();
23    
24     public String getName() {
25         return name;
26     }
27     public void setName(String name) {
28         this.name = name;
29     }
30     public Person(){
31        
32     }
33     public Person(String name){
34         this.name = name;
35     }
36 }
37 class Student extends Person{
38     public void eat(){
39         System.out.println("学生吃饭");
40     }
41     public void walk(){
42         System.out.println("学生走路");
43     }
44     @Override
45     void breath() {
46         System.out.println("学生不应该呼吸雾霾的空气");
47     }
48 }
49 
50 abstract class Worker extends Person{
51     public void eat(){
52         System.out.println("工人吃饭");
53     }
54 //    public void walk(){
55 //        System.out.println("工人走路");
56 //    }
57 }
58 
59 class Animal{
60     //不是抽象方法!
61     public void sleep(){
62        
63     }
64 }

 

转载于:https://www.cnblogs.com/zhangfan94/p/4263288.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109566.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微信多业务 – 消息转发多业务

    微信多业务 – 消息转发多业务

    2021年9月7日
    52
  • vue中 关于$emit的用法

    vue中 关于$emit的用法1、父组件可以使用props把数据传给子组件。2、子组件可以使用$emit触发父组件的自定义事件。vm.$emit(event,arg)//触发当前实例上的事件vm.$on(event,fn);//监听event事件后运行fn;例如:子组件:<template><divclass=”train-city”>&l………

    2022年6月25日
    44
  • 打开火狐浏览器之后主页自动跳转到2345网站首页

    打开火狐浏览器之后主页自动跳转到2345网站首页常在河边走,哪有不湿鞋。由于某款软件是收费的,需要下载绿色版,就在网上下载,作为老司机,每个界面还是很小心地、仔细的点击下一步,尽量不被迷惑了双眼,只下载所需要的软件。但没想到还是中招了,什么2345、好压王、高仿office和wps的一款(名字已忘记)、乱七八糟的输入法,头大,就一个个的删除掉,但没想到不仅仅是流氓软件偷偷下载,卸载那么简单,它还会偷偷的修改浏览器的主页,以及不知道的一些东西。会恶心你,可能这就是免费的代价。果真是天下没有免费的午餐。———————-

    2022年6月13日
    32
  • 用JS获取地址栏url参数的方法_js的url是啥

    用JS获取地址栏url参数的方法_js的url是啥有个url如下:http://passport.csdn.net/account/login?from=http%3a%2f%2fwrite.blog.csdn.net%2fpostedit我们该如何获取from这个参数的值呢?在网上搜了下方法很简单,如下,第一种是通过正则,第二种通过切串放进数组的方式:方法一:functiongetQueryString(name){

    2025年7月8日
    2
  • anaconda+pycharm安装教程_如何在pycharm中配置anaconda

    anaconda+pycharm安装教程_如何在pycharm中配置anaconda本篇文章主要介绍windows系统下Anaconda和PyCharm的安装和使用。Anaconda是将Python和许多常用的package打包直接来使用的Python发行版本,而PyCharm是python开发较为好用的IDE,望大家参考。

    2022年8月29日
    3
  • git 命令怎么删除远程分支文件_git删除远程仓库分支

    git 命令怎么删除远程分支文件_git删除远程仓库分支本地删除请看:git命令怎么删除本地分支查看所有分支查看项目的远程分支:gitbranch-r删除远程分支比如我们要删除远程分支origin/SLT_table_reportgitpushorigin-d分支名我们执行:gitpushorigin-dSLT_table_report删除成功注意这里不能写成origin/SLT_table_report,不然会报错:具体请参考【git删除远程分支报错error:unabletodelete‘

    2022年10月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号