💗 💗 博客:小怡同学
💗 💗 个人简介:编程小萌新
💗 💗 如果博客对大家有用的话,请点赞关注再收藏 🌞
抽象类
1.一个类中没有包含足够的信息来描述一个具体对象,这样的类就是抽象类。(对象都是通过类来描述的,但不是所有的类都可以描述对象)
//一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体.
1…使用abstract修饰的类叫做抽象类,使用abstract修饰的方法叫做抽象方法
2.抽象类中可以包含普通类所能包含的成员
3.抽象类与普通类不同,抽象类当中可以包含抽象方法。
4.抽象类不能具体的实例化(new 类( ))。但是有构造方法 通过子类构造
5.抽象类存在的最大意义就是被继承//这里继承但不需要方法都重写,这里主要重写抽象方法。
6.普通类继承抽象类,必须重写抽象方法
7.抽象类继承抽象类,不要需要重写
8.静态方法,被private修饰的方法,构造方法,被final修饰的方法都不能被重写,所以不能成为抽象方法(因为抽象方法必须被重写)
1.抽象类本身不能被实例化, 要想使用, 只能创建该抽象类的子类. 然后让子类重写抽象类中的抽象方法。
2.那为什么不直接写普通方法的子类重写呀?
在大多数工作不能该由父类完成,而只用子类完成,如果此时不小心使用父类完成,编译器也不会报错,而抽象类的父类不能被实例化,所以能提早发现错误。
接口可以看成是:多个类的公共规范,是一种引用数据类型。
//书写小提示:接口命名一般以大写I开头,接口命名“用形容词性”的单词 //接口与抽象方法有许多类似
1.接口不能实列化(new ? ()),而且不能使用子类帮助构造父类,所以接口没有构造方法(我的理解是 在抽象类中抽象方法才被重写,所以子类可以帮助构造其他成员变量,但是接口中的成员变量都是 public static final 无法赋值
所以无法使用构造方法)
2.接口不能在接口中实现,只能被重写
3.在子类重写接口方法时,不能使用default来访问权限修饰,接口默认访问权限为public 因为子类的访问权限只能大于等于父类
4.接口中可以有成员变量但是会被默认为public static final类型
5.如果不想重写接口中的方法,则需把类设置为抽象类(抽象方法也是) 6jdk8中.接口还可以包含default可以重写也可以不重写,也包含静态方法,不能重写
7.一个类可以继承多个接口
//不要因为即继承接口又继承父类就乱了思路,可以把他们分开想象,
//(个人理解)主要实现子类方法,父类可以不用接接口
类是单继承的,一个类实现多个接口,接口之间可以实现多继承
抽象类可以包括普通方法和普通字段,可以不被重写,而接口中的方法必须重写
//抽象类的存在是为了更好运用子类,因为不小心实例化了父类,编译器会提醒