抽象类(abstract)
抽象类概述:一个类被abstract修饰表示这个类是抽象类, 自己定义方法但是不实现方法,后代去实现
抽象方法: 一个方法被abstract修饰表示这个方法是抽象方法 ,抽象方法没有方法体
特点:
1,有抽象方法的类一定是抽象类,抽象类不一定有抽象方法。 抽象类有0-N个抽象方法
2,抽象类不能实例化,意思是不能new一个抽象类
3,凡是继承抽象类的类,必须实现抽象类的方法或者自己也是一个抽象类
4,构造方法和static方法不能是抽象的
下面为一个实例:
抽象类Person
1 public abstract class Person { 2 //私有属性性别 3 private String sex; 4 //有参构造 5 public Person( String sex){ 6 this.sex=sex; 7 } 8 //抽象方法 9 public abstract void doSomething(); 10 11 }
子类Student
1 public class Student extends Person{ 2 3 private String name;//名字 4 private int age;//年龄 5 //有参构造 6 public Student(int age){ 7 super("男"); 8 this.age=age; 9 } 10 public Student(int age,String name){ 11 this(age); 12 this.name=name; 13 } 14 public void doSomething(){ 15 System.out.println("我是学生类实现抽象方法doSomething"); 16 } 17 18 }
子类Teacher
1 public class Teacher extends Person { 2 public Teacher(String sex) { 3 super(sex); 4 } 5 6 public void doSomething(){ 7 System.out.println("我是老师类实现抽象方法doSomething"); 8 } 9 10 }
测试类Text
1 public class Text { 2 3 public static void main(String[] args) { 4 Person p=new Student(12); 5 p.doSomething(); 6 Person p1=new Teacher("男"); 7 p1.doSomething(); 8 } 9 }
控制台输出结果为:
我是学生类实现抽象方法doSomething
我是老师类实现抽象方法doSomething
接口(interface)