java 面向对象编程(4)

1.方法的重写(覆盖)override
作用:改造父类同名的方法
在继承体系中,子类重写父类同方法名,同返回类型,同参数列表的方法

重载overload:同一个类中,方法名相同,参数列表不同,与返回类型无关
2.抽象类
abstract 抽象的
(1)可以修饰类:抽象类
(2)可以修饰方法:抽象方法

抽象类:为了统一管理类的定义的
可以有抽象方法也可以有普通方法
抽象类不可以实例化对象,子类需要继承抽象类并且重写抽象类的抽象方法,才可以实例化子类
一个类如果有抽象方法,该类必须是抽象类

抽象方法:只有返回类型,方法名,参数列表,但是没有方法体 {}
访问修饰符 abstract 返回类型 方法名(参数列表);

 抽象类中的抽象方法不能被private和static修饰,可以protected

3.接口
作用:弥补java单继承的缺点,统一管理类

接口:所有属性都是常量,所有方法都是抽象方法 ,接口是特殊的抽象类
不能实例化

 接口中的属性:访问权限只能是缺省的或者public
               必须直接赋值
               默认static final修饰(可以省略)		
 接口中方法:都是抽象方法,没有方法体
             默认abstract修饰(可以省略) 
             访问权限缺省的,public	,不可以是protected(统一管理所有类的,不仅仅是子类)
  				 
 A  extends  B ,C ,D
 结论 A,B ,C ,D全部都是接口
 
 A extends B
 结论  A和B 都是接口
       A和B 都是类 
	   
 A implements B	  
 结论:A只能是类,B只能是接口	 

4.抽象类和接口区别
相同点:抽象类和接口都不能实例化对象,都可以对类的设计进行统一管理
不同点:
(1)抽象类是抽象方法和非抽象方法的混合体,可以全部都为非抽象方法,也可以全部为抽象方法
接口中的方法全部都是抽象的
(2)抽象类只能有一个父类单继承 abstract class A entends B (B一定是类)
接口可以有多个父接口 interface A extends B ,C,D …(B ,C,D 一定是接口)
类的父类一定是类,接口的父类一定是接口
(3)抽象类 abstract class 类名
接口 interface 接口名
(4)抽象类的子类通过entends继承抽象类
接口的子类通过 implements实现接口
关系:接口是特殊的抽象类

5.匿名对象与垃圾回收机制
匿名对象:没有定义对象名/引用名的对象,称为匿名对象
没有引用指向堆中的分配的地址

垃圾回收机制:GC,不定期将堆中的内存自动释放垃圾对象
     垃圾对象:匿名对象
	           引用名赋值为null
			   超出生命周期

6.final关键字 “最终的”
(1) final修饰局部变量 :常量 ,值不可被修改
main(){
final int x=10;
//x=100;不可被修改
}
(2)final 修饰成员变量:值不可被修改,可以直接赋值,也可以在构造器中赋值
(3)final修饰方法:不可以被子类重写
(4)final修饰类:不可以被子类继承 “断子绝孙”

发布了21 篇原创文章 · 获赞 11 · 访问量 339

猜你喜欢

转载自blog.csdn.net/weixin_41050494/article/details/103918459
今日推荐