码迷,mamicode.com
首页 > 编程语言 > 详细

java 笔记(3)抽象类与抽象方法

时间:2017-05-13 12:36:54      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:ring   todo   年龄   bsd   sde   抽象类   extends   generated   子类   

抽象类与抽象方法

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

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

抽象方法:声明而未被实现的方法,抽象方法必须使用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.抽象方法必须被重写。

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

java 笔记(3)抽象类与抽象方法

标签:ring   todo   年龄   bsd   sde   抽象类   extends   generated   子类   

原文地址:http://www.cnblogs.com/Timenow/p/6848326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!