zoukankan      html  css  js  c++  java
  • java抽象类

    抽象类:

    场景:

    多个类继承一个类,当我们需要调用一个方法,由于方法主体的不一样,具有对象特征。这时候基类创建抽象方法占地,子类实现具体的抽象方法。

    如果一个类中有抽象方法,那这个类也是抽象类,需要abstract来修饰。

    抽象类不可以实例化,需要通过他的子类来调用基类的抽象方法和普通方法以及数据。

    如果子类没有实现所有的抽象方法,那该子类也是抽象类。

    通过实例化子类,通过父类多态调用各个子类的相应的抽象方法,达到多态的目的。

     1 package com.company;
     2 
     3 public class init_java {
     4     public static  void  main(String[] args){
     5         Person[] per_l=new  Person[2];
     6         per_l[0]=new Employee("tom","evil");
     7         per_l[1]=new Student("tom","tom");
     8         for(Person p:per_l){
     9             System.out.println(p.kouHao());
    10         }
    11 //    System.out.println(a.kouHao());
    12 //    System.out.println(b.kouHao());
    13 
    14     }
    15 
    16 
    17 }
    18 
    19 abstract class Person{
    20     private String name;
    21     public  Person(String aname){
    22         this.name=aname;
    23     }
    24     public String getName(){
    25         return this.name;
    26     }
    27     public abstract  String kouHao();
    28 }
    29 
    30 class Employee extends Person{
    31     private String alaname;
    32     public Employee(String name1,String name2){
    33         super(name1);
    34         this.alaname=name2;
    35     }
    36     public String kouHao(){
    37         return "Employee "+this.alaname+"  is great good!";
    38     };
    39     public String getAlaname(){
    40         return this.alaname;
    41     }
    42 
    43 }
    44 class Student extends Person{
    45     private  String name;
    46     public Student(String name1,String name2){
    47         super(name1);
    48         this.name=name2;
    49     }
    50     public   String kouHao(){
    51         return "Student "+this.name+" is beautiful!";
    52     }
    53 }

    输出结果:

    通过初抽象对象的定义,子类实现抽象方法,在调用的时候通过子类来初始化父类,通过父类变量来多态调用子类的相同的方法(kouHao).

  • 相关阅读:
    Cg(C for Graphic)标准函数库之数学函数与几何函数
    小技巧总结
    MVC学习笔记
    HTML5 ajax上传附件
    JS:公历、农历互转
    JS:中文GB2312编码
    Oracle:递归查询(树形结构数据)
    oracle:自定义多行合并聚合函数
    编写一个可配置的网页信息提取组件 (二)—— 优雅的.net core 配置系统
    编写一个可配置的网页信息提取组件
  • 原文地址:https://www.cnblogs.com/evilliu/p/7676726.html
Copyright © 2011-2022 走看看