标签:java 抽象类 接口 interface abstract
1.抽象类 /** 1. 抽象方法一定存在于抽象类中,抽象方法和抽象类需要abstract修饰! 2. 抽象类不能实例化. 3. 如果抽象类中多个抽象方法,而其子类只继承了一个抽象方法,则该子类为抽象类,故也无法实力化。 4. 抽象类只能被子类覆盖其全部的抽象方法,才能建立子类对象! 5. 抽象类中可以有非抽象方法 */ //该子类未覆盖父类func1的抽象方法,故子类为抽象类,不能实例化。编译失败 abstract class Person{ abstract void func(); abstract void func1(); void func2(){ System.out.println("非抽象方法2!"); }; } class Student extends Person{ public void func(){ System.out.println("非抽象方法!"); } } class AbstractDemo{ public static void main(String[]args){ Student st =new Student();//子类为抽象类,不能实例化 st.func(); } } //该父类未中有抽象方法,类名未被abstract修饰,编译失败 class Person{ abstract void func(); //abstract void func1(); void func2(){ System.out.println("非抽象方法2!"); }; } class Student extends Person{ public void func(){ System.out.println("非抽象方法!"); } } class AbstractDemo{ public static void main(String[]args){ Student st =new Student(); st.func(); } } //编译成功 abstract class Person{ abstract void func(); //abstract void func1(); void func2(){ System.out.println("非抽象方法2!"); }; } class Student extends Person{ public void func(){ System.out.println("非抽象方法!"); } } class AbstractDemo{ public static void main(String[]args){ Student st =new Student();//子类为抽象类,不能实例化 st.func(); } } 2.接口 /** 1. 接口中所有方法都是抽象方法,故可以看成是特俗的抽象类 2. 接口的成员有固定的修饰符 常量: public static final 方法: public abstract,接口中所有方法都是public权限。 */ interface Inter{ public static final int NUM = 3; public abstract void show(); } class SubInter implements Inter{ public void show(){ System.out.println("实现接口!"); } class InterfaceDemo{ public static void main(String args[]){ SubInter sb = new SubInter(); sb.show(); } }
本文出自 “司马囧” 博客,请务必保留此出处http://9274590.blog.51cto.com/9264590/1695656
标签:java 抽象类 接口 interface abstract
原文地址:http://9274590.blog.51cto.com/9264590/1695656