• 抽象类和抽象方法的区别


    抽象方法:在类中没有方法体的方法,就是抽象方法。
    
    抽象类:含有抽象方法的类就叫抽象类。
    
    抽象类中的抽象方法必须被实现!
    
    如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!
    
    抽象类中的普通方法,可以不必实现。
    
    1 用abstract来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。例如 :
    1
    	abstract class Animal { //用abstract来定义一个Animal为抽象类
    2
    	}
    3
    	和
    4
    	public abstract void enjoy(); //用abstract来定义一个抽象方法"enjoy"
    
    2 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
    
    3 抽象类不能被实例化。
    
    4 抽象方法只需声明,而不需实现某些功能。如:
    1
    	public abstract void enjoy();//这个抽象方法不需要实现功能
    2
    	 
    3
    	public void enjoy() {
    4
    	System.out.print("叫声"); //而一般的方法有必要实现某些功能
    5
    	}
    
    例A:没抽象类的多态程序
    01
    	class Person {
    02
    	    public void f() {
    03
    	        System.out.println("父类");
    04
    	    }
    05
    	}
    06
    	 
    07
    	class Students extends Person {
    08
    	    public void f() {
    09
    	        System.out.println("学生类");
    10
    	    }
    11
    	}
    12
    	 
    13
    	class Teacher extends Person {
    14
    	    public void f() {
    15
    	        System.out.println("教师类");
    16
    	    }
    17
    	}
    18
    	 
    19
    	public class Test3 {
    20
    	    public static void main(String[] args) {
    21
    	        Person s = new Students();
    22
    	        Person t = new Teacher();
    23
    	        s.f();
    24
    	        t.f();
    25
    	    }
    26
    	}
    
    例B:抽象类的多态程序
    01
    	abstract class Person {
    02
    	    public abstract void f();
    03
    	}
    04
    	 
    05
    	class Students extends Person {
    06
    	    public void f() {
    07
    	        System.out.println("学生类");
    08
    	    }
    09
    	}
    10
    	 
    11
    	class Teacher extends Person {
    12
    	    public void f() {
    13
    	        System.out.println("教师类");
    14
    	    }
    15
    	}
    16
    	 
    17
    	public class Test3 {
    18
    	    public static void main(String[] args) {
    19
    	        Person s = new Students();
    20
    	        Person t = new Teacher();
    21
    	        s.f();
    22
    	        t.f();
    23
    	    }
    24
    	}
    
  • 相关阅读:
    第四课:数字系统抽象
    第三课:叠加法和戴维南法
    第二课:基本电路法
    电路和电子学第一课:集总电路抽象
    第三十六课:告别演出
    第三十五课:多普勒效应和宇宙大爆炸
    第三十四课:光栅和分辨率
    第三十三课:干涉
    第三十二课:复习课
    第三十一集:彩虹
  • 原文地址:https://www.cnblogs.com/deepbreath/p/5015629.html
Copyright © 2020-2023  润新知