笼统类:
不能运用new要领举行实例化的类,即没有细致实例对象的类,只能够经由过程笼统类派生出新的子类,再由其子类来建立对象;
笼统要领:
笼统要领就是以 abstract润饰的要领,这类要领只声明返回的数据类型,要领称号和所须要的参数,没有要领体,也就是说笼统要领只须要声明,当一个要领为笼统要领时,意味着这个要领必需被子类的要领所重写,不然其子类的该要领仍然是笼统的;
笼统类的特征:
A:笼统类和笼统要领必需用abstract关键字润饰;
B:笼统类中不一定有笼统要领,但是有笼统要领的类必需定义为笼统类;
C:笼统类不能直接实例化;(能够经由过程子类(重写要领后的子类)的多态体式格局实例化);
1.它不是细致的;
2.笼统类有组织要领,用于子类接见父类数据的初始化;
D:笼统类的子类;
1.假如不想重写笼统要领,该子类必需是笼统类;
2.成为细致类则必需重写一切的笼统要领;
下面给出一个笼统类的实例:
public class AbstractDemo { public static void main(String[] args) { //Tree t = new Tree();//笼统的子类不能实例化;Error! Grass g = new Grass();//非笼统类的子类实例化 g.grow(); System.out.println("-------------"); Plant p = new Grass();//多态的体式格局 p.grow(); } } abstract class Plant{ public abstract void grow(); } /* * 1.子类是笼统类; */ abstract class Tree extends Plant{ Tree(){ System.out.println("tree"); } } /* * 2.子类不是笼统类,则必需重写一切笼统要领; */ class Grass extends Plant{ Grass(){ System.out.println("grass"); } public void grow(){ System.out.println("grass growing"); } }
笼统类的成员的特征:
A:成员变量
1.既能够是变量,也能够是常量;
B:组织要领
1.用于子类接见父类数据的初始化;
C:成员要领
1.既能够是笼统的,也能够黑白笼统的;
笼统类成员要领特征:
A:笼统要领
1.强迫请求子类做的事变;
B:非笼统要领
1.子类继续的事变,进步代码复用性;
下面给出一个笼统类的成员的实例:
public class AbstractMember { public static void main(String[] args){ Phone p = new Vivo(); //这里是多态;(用来实例化笼统类) p.height = 1460; //1600 -> 1460 System.out.println(p.height); System.out.println(p.width); System.out.println("-----------"); p.call(); //vivo call p.method(); //vivo method } } abstract class Phone{ public int height = 1600; public final int width = 960; public Phone(){} public Phone(String name,int count){} /*成员要领*/ public abstract void call();//笼统成员要领; public void method(){ //非笼统成员要领; System.out.println("phone method"); } } //非笼统子类,重写笼统父类的笼统要领: class Vivo extends Phone{ public void call(){ System.out.println("vivo call"); } public void method(){ System.out.println("vivo method"); } }
以上就是java中怎样明白笼统的细致内容,更多请关注ki4网别的相干文章!