Java面向对象继承重要点

面向对象的三大特性

为了更好的组织使用简化类 ,进一步改造 : 高内聚 低耦合

继承

延续和扩展父类信息
新增 覆写|重写

   延续: 子类没有父类有
   新增: 子类有父类没有
   重写: 子父类都有改写
   
   继承链
       追溯本源
       
   子类实例化
       先静态后成员  先父类后子类

子类实例化示例

/**
* 
* new 
* 1、开辟空间+默认值
* 2、初始化
* 	1)、=
* 	2)、构造块
* 	3)、构造器
* 3、返回值
* 
* 
* 存在继承
* 1、父亲的空间+默认值; 子类的空间+默认值
* 2、父类依次初始化 完毕后;子类的依次初始化
* 3、返回地址给引用
* 
* 就近最优: 注意方法是否被重写,
* 如果重写找子类的方法,
* 没有重写找父类的方法
* 
* @author TW
*
*/
public class Parent {
   int a=5 ;
   
   public Parent() {
   	test(); //访问时机 是在构造父类时 ,此时子类没有初始化,使用的都是子类的默认值
   }
   
   public void test() {
   	System.out.println(a);
   }
   
   public static void main(String[] args) {
   	new Child();
   	
   }
}

class Child extends Parent{	
   int a=20;	
   int b=30;
   
   
   public Child() {
   	this.a =10;
   	this.b =20;
   }	
   
   /*
   public void test() {
   	System.out.println(a);
   }*/
   
}

首先父类里的程序入口点main方法里第一行代码,new一个子类,根据子类实例化规则:先静态后成员;先父类后子类,首先在创造子类的时候,必须创建父类,new一个对象会做三件事,开辟空间给默认值,然后初始化,再传地址给引用,然后代码在new的时候首先开辟空间在方法区,有了父类和子类的方法,然后给予默认值,父类中的a=0,子类中的a=0,b=0,然后再进父类初始化,(从=到构造块再到构造器),然后子类初始化(从=到构造块再到构造器),然后new成功。

在第一次调用父类构造器然后调用方法的时候test() 没有重写 ,输出的值为 5,如果存在就是Child开始赋的值了

注意:static块和static变量,谁在最前面先执行谁
   不管静态的方法或者属性是在子类还是父类
   先执行静态的,再去执行成员的

Object

任何一个类的老祖宗就是Object  . Object所有的方法都会被继承下来。

封装

保护数据|社会分工 、访问权限

多态

多种形态,以不变应万变,代码通用性和扩展性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值