java抽象类
Posted evil_liu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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).
以上是关于java抽象类的主要内容,如果未能解决你的问题,请参考以下文章