• java_抽象类应用


       本例子通过一个实例来具体阐述抽象类的应用,首先一个抽象类Person2,里面定义了一些人的共有属性(年龄,姓名),和抽象方法want(),want()方法来具体实现不同的人的需求(学生想要成绩,工人想要工资)。接下来student类和worker类继承Person类,并且实现自己想要的want(),但是人的共有属性(年龄,姓名)就不要再次实现了,这样就大大减少了代码量。

        还要记住不要去继承一个已经实现好的抽象类。

        

     1 package com.test;
     2 
     3 abstract class Person2{
     4     private int age;
     5     private String name;
     6     public Person2(int age,String name) {
     7         this.age = age;
     8         this.name = name;
     9     }
    10     public int getAge() {
    11         return age;
    12     }
    13     public void setAge(int age) {
    14         this.age = age;
    15     }
    16     public String getName() {
    17         return name;
    18     }
    19     public void setName(String name) {
    20         this.name = name;
    21     }
    22     public abstract void want();
    23 }
    24 
    25 class Student2 extends Person2{
    26     
    27 
    28     private int score;
    29 
    30     public Student2(int age, String name,int score) {
    31         super(age, name);
    32         this.score = score;
    33         
    34     }
    35     public int getScore() {
    36         return score;
    37     }
    38 
    39     public void setScore(int score) {
    40         this.score = score;
    41     }
    42 
    43     @Override
    44     public void want() {
    45         System.out.println("姓名: "+getName()+"  年龄:"+getAge()+"  成绩: "+getScore());
    46     }
    47     
    48 }
    49 
    50 class Worker2 extends Person2{
    51 
    52     private int money;
    53     public void setMoney(int money) {
    54         this.money = money;
    55     }
    56     public int getMoney() {
    57         return money;
    58     }
    59     
    60     public Worker2(int age, String name,int money) {
    61         super(age, name);
    62         this.money = money;
    63     }
    64 
    65     @Override
    66     public void want() {
    67         System.out.println("姓名: "+getName()+"  年龄:"+getAge()+"  工资: "+getMoney());
    68     }
    69     
    70 }
    71 
    72 public class AbsDetail {
    73 
    74     public static void main(String[] args) {
    75         Student2 s = new Student2(10, "小明", 100);
    76         s.want();
    77         
    78         Worker2 w = new Worker2(35, "大明", 1000000);
    79         w.want();
    80     }
    81 
    82 }

         运行结果:

    姓名: 小明  年龄:10  成绩: 100
    姓名: 大明  年龄:35  工资: 1000000
  • 相关阅读:
    收集一些dos网络配置命令,从新获取ip刷新dns
    多个线程访问共享对象和数据的方式
    Oracle rownum 分页, 排序
    ORACLE中用rownum分页并排序的SQL语句
    CentOS 6.5安装MongoDB 2.6(多yum数据源)
    【编程练习】收集的一些c++代码片,算法排序,读文件,写日志,快速求积分等等
    java枚举使用详解
    PHP+MySQL动态网站开发从入门到精通(视频教学版)
    Premiere Pro CS6标准教程
    黑客攻防:实战加密与解密
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5712221.html
Copyright © 2020-2023  润新知