Java基础——面向对象三大特征(继承、封装、多态)

面向对象三大特征(继承、封装、多态)

1 继承

class Parent{
    
    
	属性;
	构造方法;
	其它方法;
}
class Child extends Parent{
    
    
	全部继承过来;
	可以重写父类的属性与方法;
	可以拥有自己独特的属性和方法;
}
  • 继承语法——extends
  • 一个子类只能继承一个父类,一个父类可以由多个子类继承:一个儿只能有一个爹,一个爹可以有好几个儿
  • 多个子类继承同一个父类时,每创建一个子类对象的同时,JVM都会默认调用父类的构造方法创建一个父类对象,即在具体对象面前,父类对象与子类对象是一对一实现
  • 父类都默认继承了超类Object中的所有属性与方法,子类继承父类就不会再继承Object类,但也间接继承了Object类
  • 子类会直接获取到父类所有的属性与方法,当子类与父类含有相同的属性时,可以用关键字thissuper进行区分
class Parent{
    
    
	String name = "fu";
}
class Child extends Parent{
    
    
	String name = "zi";
	void test(){
    
    
		输出super.name; // 输出父类的name,fu
		输出this.name; // 输出子类的name,zi
	}
}
  • 子类可以重写父类的方法(不包括构造方法),父类的方法不会被覆盖掉,依旧可以用super关键字调用
  • 子类重写父类方法时,方法名、返回值类型、参数列表要和父类方法一致

2 封装

看这篇总结

  • 简单来说就是,将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的 getXxx()/setXxx() 方法
  • 好处就是,通过方法来实现成员变量的操作,提高了代码的安全性,把代码用方法进行封装,提高了代码的复用性

3 多态

// Boy和Girl继承了Person类
// 体现了多态
Person p1 = new Person(); 
Person p2 = new Boy(); 
Person p3 = new Girl();
p3.testGirl(); // testGirl为Girl类下的方法,不能执行,因为这个时候的p3并不是真正的Girl,体现了约束
Girl p4 = new Girl(); 
p3.testGirl(); // 能执行,这个时候的p4是真正的Girl
  • 多态其实就是一个对象在不同场景下表现出来的不同状态和形态,在不同场景下同一个对象表现出来的能力是不同的
  • 多态语法常用来约束对象的使用场景

4 方法重载

  • 一个类中不允许声明相同的属性和相同的方法(即方法名、参数数量、参数顺序、参数名都相同)
  • 构造方法也有方法重载

猜你喜欢

转载自blog.csdn.net/weixin_46838605/article/details/129860887
今日推荐