zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    C#3.0之神奇的Lambda表达式和Lambda语句
    Expression Tree 学习笔记(一)
    C#对象序列化与反序列化
    Linux Shell编程入门
    ora-03113或者ora-12573 通信通道的文件结束出现异常错误:核心转储
    如何实现文档在线预览
    使用npoi导入Excel
    判断时间(时:分)是否在某个时间段内
    程序员开发时遇到的那些缩写和名词(记录)
    git
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5712221.html
Copyright © 2011-2022 走看看