抽象类小结

来源:互联网 发布:midi键盘软件 编辑:程序博客网 时间:2024/06/11 12:57

一..抽象类的基本语法:

1.在面向对象过程中类是抽象的,类对象是具体的。
2.只有函数的定义,没有函数体的函数被称为抽象函数:
 abstract void fun();
 abstract //摘要
 
3.什么是抽象类(基类)
在java中,用abstract关键字来修饰一个类时,这个类叫抽象类。

1)抽象类不能够生成对象;
2)如果一个类当中包含有抽象函数,那么这个类必须被声明为抽象类。
3)  如果一个类当中没有抽象函数,那么这个类也可以被声明为抽象类。
4)抽象类是用来当父类,它的子类可以用来事先,抽象类一般称为基类,是用来继承的。
5)a.抽象类不能生成对象;
      b.构造函数用于生成类的对象。抽象类可以通过子类的对象调用抽象类的构造函数。
      c.抽象类不能生成对象,但是可以拥有构造函数。

6)abstract类只关心它的子类是否具有某种功能,并不关心该功能的具体实现,功能的具体行为由子类负责实现。 
7)用abstract来修饰一个方法时,该方法叫做抽象方法。与final类和方法相反,abstract类必须被继承。abstract方法必须被重写。

 

二.抽象类的例子:

1.定义一个抽象类Person.java

abstract class Person{
   String name;
   int age;
  
 Person(){ //构造函数不带返回值
   System.out.println("Person 的构造函数");
 }
 
 Person(String name, int age){
    this.name = name;
    this.age = age;
    System.out.println("name :=" + name + "age :=" +age);
 }
 
 void introduce(){
     System.out.println("我的名字是" + name + "我的年龄是:" + age);
 }
 
 abstract void eat();  //抽象方法
 
}

 

2.继承抽象类Person的子类 Sdutent.java

class Sdutent extends Person{  //抽象类继承也使用 extends关键字
   String address;
   

   Sdutent(){
      super(); //父类Person的构造函数
      System.out.println("Sdutent 的构造函数"); 
   }

 

   Sdutent(String name, int age,String address){
       super(name, age);//调用抽象类的构造函数
       this.address = address;
   }

   
   //复写父类当中的eat的抽象方法
  void eat(){
     System.out.println("Sdutent 筷子!"); 
  }
 
}

 

3.执行的类 Test.java

class Test{
    public static void main(String args[]){
       //Person p = new Person();
       //p.introduce(); //抽象类不能生成对象,无法调用抽象方法。
      
       //Sdutent s= new Sdutent();
       //s.introduce();
      
       Person p  = new Sdutent(); //向上转型
       p.eat();
      
 }
}

原创粉丝点击