面向对象的三大特征:封装 继承 多态

面向对象的三大特征

高内聚:类的内部数据操作细节自己完成,不允许外部干涉

低耦合:仅暴漏少量的方法给外部使用

封装

1.提高了程序的安全性

2.隐藏代码的实现细节

3.统一接口

4.系统可维护性增加

封装就是数据的隐藏 只暴漏一些简单的接口

关键词 private 私有的

get/set方法

    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        //让其年龄不合法的设置为0岁
       if (age>100){
            System.out.println("名字不合法");
            this.age=0;
        }else {
            this.age = age;
        }
    }


    	Person person = new Person();
        person.setName("xiaotaoshen");
        String name = person.getName();
        System.out.println(name);//xiaotaoshen

继承

继承的本质是对某一批类的抽象

关键字 extands 扩展,子类对父类的扩展

Java中类只有单继承,没有多继承

继承是类和类之间的一种关系,一个是子类,一个是父类,子类继承父类 用关键词extands来表示

super注意点

1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法和构造法方法中
3.super和this不能同时调用构造方法	
重写

重写都是方法的重写 方法!方法!方法!

下面代码有静态和非静态的效果展示

父类的引用指向子类

方法的调用只和左边定义的数据类型有关

public class A extends B(){
    public static void test(){
     System.out.println("A")
    }
}
public class B (){
    public static void test(){
     System.out.println("B")
    }
}
public class Test (){
    public static void main(String[] args){
        A a = new A();
        B b = new B();
     System.out.println(a.test());//输出结果:A
     System.out.println(b.test());//输出结果:B   
     //方法调用跟左边的 A B 有关   
    }
}

如果不加static的情况下 静态和非静态的方法是有区别的

public class A extends B(){
    public  void test(){
     System.out.println("A")
    }
}
public class B (){
    public  void test(){
     System.out.println("B")
    }
}
public class Test (){
    public static void main(String[] args){
        A a = new A();
        B b = new B();
     System.out.println(a.test());//输出结果:A
     System.out.println(b.test());//输出结果:A   
     //子类重写了父类的方法 
    }
}
总结
1.需要有继承关系,子类重写父类的方法
2.方法名必须相同
3.参数列表必须相同  否则就变成重载了
4.修饰符:范围可以扩大 不能缩小
5.重写会抛出异常  范围可以缩小不能扩大 重写异常抛出范围不能大于父类
      子类的方法和父类要保持一致,方法体保持不同

多态

多态即同一方法可以根据发送对象的不同而采用不同的行为方式

一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多

多态存在的条件

1.有继承关系
2.子类重写父类方法
3.父类引用指向子类对象  也就是可以通过父类new子类

注意:

1.多态是方法的多态,属性没有多态性
2.static 方法 属于类,它不属于实例
3.final是常量 修饰的不能被改变
4.private 方法 私有的 不能被重写

Instanceof

instanceof 关键词可以来判断两个类之间是不是父子关系,也就是继承关系

System.out.println(Object instanceof Student); //true 
System.out.println(Teacher instanceof Student); //false 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值