zoukankan      html  css  js  c++  java
  • java 笔记(4)抽象类与抽象方法

    抽象类与抽象方法

    (抽象类必须被继承,抽象方法必须被重)

    抽象类:包含一个抽象方法的类。

    抽象方法:声明而未被实现的方法,抽象方法必须使用abstract关键字声明。

    abstract class Person{
        private int age;
        private String name;
        public Person(int age, String name) {
            this.age = age;
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        
        public abstract void want();
    }
    
    class Student extends Person{
        private int score;
        
        public int getScore() {
            return score;
        }
    
        public void setScore(int score) {
            this.score = score;
        }
    
        public Student(int age, String name,int score) {
            super(age, name);
            this.score=score;
        }
    
        @Override
        public void want() {
            System.out.println("姓名:"+getName()+"  年龄"+getAge()+"  成绩"+getScore());
        }
        
    }
    
    class Worker extends Person{
        private int money;
        
        public int getMoney() {
            return money;
        }
    
        public void setMoney(int money) {
            this.money = money;
        }
    
        public Worker(int age, String name,int money) {
            super(age, name);
            this.money=money;
            // TODO Auto-generated constructor stub
        }
    
        @Override
        public void want() {
            System.out.println("姓名:"+getName()+"  年龄"+getAge()+"  工资"+getMoney());
            
        }
        
        
    }
    public class AbsDemo01 {
    
        public static void main(String[] args) {
            Student s = new Student(10, "小明", 100);
            s.want();
            Worker w = new Worker(35, "大明", 1000);
            w.want();
        }
    
    }

    运行结果:

    姓名:小明 年龄10 成绩100
    姓名:大明 年龄35 工资1000

    分析:

    上面的源代码的抽象方法public abstract void want;(我可以把它理解为是他们子类公有的方法,每个Student和woker都有他们想要的东西!)

    归纳:

    1.抽象类不能被实例化。

    2.抽象类不一定包含抽象方法,但是如果一个类中包含了抽象方法,则该类必须被定义为抽象类。

    3.抽象类必须被继承。

    4.抽象方法必须被重写。

    总而言之,抽象类不能直接实例化,要通过其子类进行实例化。

  • 相关阅读:
    cshtml 中的 AppState = Context.Application 和 控制器中的 Application 也相等
    HangFire快速入门 分布式后端作业调度框架服务
    用RSA加密实现Web登录密码加密传输
    c# MD5及盐值加密
    CentOS目录结构超详细版
    两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一)
    利用js实现 禁用浏览器后退
    在.Net Core WebAPI下给Swagger增加导出离线文档功能
    mysql 数据库扫描行数
    EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)
  • 原文地址:https://www.cnblogs.com/Timenow/p/6848326.html
Copyright © 2011-2022 走看看