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

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

  • 相关阅读:
    jvm的方法栈在干什么
    时间段交集查询
    linux 设置静态ip配置
    elk 学习
    内网穿透 https:natapp.cn
    mysql当前时间,日期转换,日期格式化
    swaggerui api.docs
    linux java -jar 后台进程
    druid 数据源 sql控制台输出
    spring pointcut 表达式
  • 原文地址:https://www.cnblogs.com/Timenow/p/6848326.html
Copyright © 2011-2022 走看看