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.抽象方法必须被重写。

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

  • 相关阅读:
    Docker 第二篇--安装Docker
    Docker 第一篇--初识docker
    VirtualBox 桥接上网方式的配置
    .NET服务器端按钮在客户端点击后禁用,服务端执行完事件后再次激活
    SignalR2.1部署IIS服务器无法推送消息
    SQL去掉某个字段重复记录
    动态生成WebService代理类
    openoffice启动服务并将office文件转换为pdf文件
    Hibernate 核心接口和工作机制
    linux下Mongodb集群搭建:分片+副本集
  • 原文地址:https://www.cnblogs.com/Timenow/p/6848326.html
Copyright © 2011-2022 走看看