Java 面向对象2

继承

多个类中存在相同属性和行为时 将这些内容抽取到单独一个类中 那么多个类无需再定义这些属性和行为 只要继承那个类即可

多个类可以称为子类 单独这个类称为父类 超类或者基类

子类可以直接访问父类中的非私有的属性和行为

        class People {					
            private String name;			
            private int age;				
            public void eat(){}				
            public void sleep(){}			
        }		

           
        class Student {
            private String name;			
            private int age;
            private int grade;	 			
            public void eat(){}				
            public void sleep(){}	
            public void study(){}
        }

由此编程过于繁琐 采用继承

        class People {					
            private String name;			
            private int age;				
            public void eat(){}				
            public void sleep(){}			
        }	

        
        class Student extends People{
            private int grade;
            public void study(){}
        }

Java中类的继承只能是单继承(单根继承) 即一个类只能继承一个父类 但是一个类可以由多个类来继承它

Java会给每一个没有设置父类的类,自动添加一个父类  Object

子类继承父类后 继承到了父类所有的属性和方法

 

基类的初始化顺序

静态变量 静态块 实例变量 实例块 构造方法

子类的初始化顺序

父类静态变量 父类静态块 子类静态变量 子类静态块 父类实例变量 父类实例块 父类构造方法 子类实例变量 子类实例块 子类构造方法

 

访问修饰符

Super关键词

Super(); 调用基类的无参构造方法

调用基类的方法 super.

 

同包不同类

不同包 子类

不同包 非子类

private

         ×

         ×

          ×

protected

         √

        √

          ×

public          √

         ×

          ×

默认   

 

 

 

 

 

 

实例识别 (instanceof)

实例识别(instanceof) 是用来判断一个对象的引用是否为某一类型

//基类
           class BasicClass {
             }
//子类A
    	   class A extends BasicClass { 
             }
//子类B
           class B extends BasicClass { 
             }

以上情况,如果无法确定基类引用到底是类A的对象引用还是类B的 对象引用时,就可以用instanceof保留字进行识别和区分:

        BasicClass basicClass = (BasicClass) obj.getObjectOfAorB();
        if (basicClass instanceof A) {

            } else if (basicClass instanceof B) {

            } else {

            }

这样就可以确定在运行时刻 基类BasicClass的引用中 所指向的对象实例

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值