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


    抽象方法:在类中没有方法体的方法,就是抽象方法。
    
    抽象类:含有抽象方法的类就叫抽象类。
    
    抽象类中的抽象方法必须被实现!
    
    如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类!
    
    抽象类中的普通方法,可以不必实现。
    
    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
    	}
    
  • 相关阅读:
    浅谈MVP与ModelViewViewModel(MVVM)设计模式
    策略模式
    C#验证码
    如何招到烂程序员
    承载和使用WCF服务
    .NET Remoting 使用总结
    基于.Net Remoting的应用程序
    HTML5 是什么?
    关于HTTP及XMLHTTP状态代码一览
    Remoting多个信道(Chennel)的注册问题
  • 原文地址:https://www.cnblogs.com/deepbreath/p/5015629.html
Copyright © 2020-2023  润新知