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

java抽象类

时间:2017-10-16 14:56:01      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:get   bsp   []   string   抽象   super   blog   相同   技术   

抽象类:

场景:

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

如果一个类中有抽象方法,那这个类也是抽象类,需要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).

 

java抽象类

标签:get   bsp   []   string   抽象   super   blog   相同   技术   

原文地址:http://www.cnblogs.com/evilliu/p/7676726.html

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