java三大特性以及super详解

本文深入探讨了Java的三大特性——封装、继承和多态。封装强调数据安全,通过get/set方法控制访问。继承允许子类继承父类属性和方法,super关键字用于调用父类构造及方法。多态则表现为一个对象引用可根据实际类型执行不同行为,父类引用可以指向子类对象。在实际应用中,多态提高了代码的灵活性和可扩展性。
摘要由CSDN通过智能技术生成

Java三大特性封装,继承 ,多态

封装

  1. 我们编写程序一定要按照 **“高内聚,低耦合 ”**的原则
  2. 封装可以提高数据的安全性,将程序数据处理包装到程序内部处理,不允许外部干涉,只暴露少量的接口给外部调用。
  3. 属性的私有 private 通过 get/set来进行数据操作。

生活中的所有家电都被包装到外壳中,只暴露给一些功能使用,这些功能的实现过程不得而知,在家电内部结构中完成,这就是“封装”

ALT + insert 快速生成get/set方法;(部分电脑需要加上 fn 键)

继承

  • 继承关系的关键字:extends
  • 被继承者成为父类(基类) 继承者称为子类(派生类)
  • 发生继承关系后子类可以获得父类的属性和方法 (private 私有属性 不可继承)
  • 子类可以重写父类的方法 在调用时会执行子类方法。

super

  • super用来调用父类中的方法和属性
  • 当有继承关系时 在子类创建无参构造方法时会默认调用父类中的无参构造方法
  • 在子类的构造方法中掉用父类的构造方法要写在第一行
  • 在继承关系中 父类的无参构造方法会默认在子类的无参构造方法中隐式调用
    在这里插入图片描述

可以看到代码中子类中并没有调用父类的构造方法 但是控制台输出了父类的构造方法

 public test1() {
        		super(); 	//没看到的就是这句代码 在程序运行时自动生成了;
        System.out.println("子类调用");
    }
  • 当父类中没有无参构造方法时,却有 有参构造方法 时
  • 子类必须通过显式的调用父类的有参构造方法才能创建自己的构造方法
  • 一般在父类创建有参构造方法时 需要先创建一个无参构造方法 以保证子类在需要创建构造方法时不会出错

在这里插入图片描述

多态

  • 即一个不同的方法可以根据发送对象的不同而采取多种不同的行为方式
  • 一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多(父类,有关系的类)

父类的引用指向子类

//创建两个不同的类
public class Person{
}
public class Student{
}
Student s1=new Student();
//用父类的引用指向子类
Person s2=new Student();
Object s3=new Student(); //Object 是所有类的父类 是顶层 所有类都默认继承 Object 类

这些实例的方法取决于子类

当父类中没有方法 子类中有 方法不能被执行

//创建两个不同的类
public class Person{   //父类中没有方法
}
public class Student{ //在子类中创建一个方法
     public void test() {
        System.out.println("子类调用");
    }
}
//实例化对象 
public static void main(String[] args) {
      	 Student s1=new Student();
		//用父类的引用指向子类
		Person s2=new Student();
    	s1.test(); //正常调用
    
    	s2.test(); //报错显示没有该方法
    }

当父类和子类中有相同的方法 子类的方法会被执行

//创建两个不同的类,创建两个同名的方法
public class Person{   
     public void test() {
        System.out.println("父类调用");
    }
}
public class Student{
     public void test() {
        System.out.println("子类调用");
    }
}
//实例化对象 
public static void main(String[] args) {
		//用父类的引用指向子类
		Person s2=new Student();
    	s2.test();
    }

输出结果为:
在这里插入图片描述

多态的注意事项

  1. 多态是方法的多态 属性没有多态;
  2. 两个类之间需要存在关系;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值