Java三大特性

封装

概念

  简单的来说,就是将一些变量和方法集成到一个类里面,这个就可以称作是封装了。类中的属性通常是私有的,方法通常是公共的。这种封装有效地隐藏了类的内部实现,只提供外界调用的接口,对数据起到了保护的作用。

继承

  多个类具有相同的属性或方法,那么将这些属性和方法提取出来,重新封装在一个类中,让这些类继承这这个类,那么被继承的类就是父类,继承的类就称是子类,子类可以继承父类的相关属性和方法。这样提高的代码的可重用性,减少了代码冗杂。

要点

  1. java继承是单继承,不能多继承,但可以多重继承
  2. 继承需要满足is-a(是一种)
  3. 属性都是可以继承的,但private不可以访问
  4. 只有虚方法可以继承,被记录在虚方法表中
    • 虚方法指的是不含private,static,final的方法

多态

  简单来讲,就是一个方法的调用具有不同的实现效果。主要是通过overload(编译时多态)和override(运行时多态)来实现多态。一个比较普遍的多态表现形式就是父类引用指向子类,这样在调用父类的相关方法的时候就实现了子类的方法的作用。多态可以让调用同名方法实现不同的功能,提高的代码的可拓展性。

要点

  1. override
    1. 方法名和参数列表不变
    2. 只有被继承的方法才可以重写
    3. 对于override访问权限大于等于父类(default
    4. 对于override,方法返回类型小于等于父类
  2. overload
    1. 重载方法属于同一个类
    2. 方法名相同,参数列表不同(类型,数量,顺序不同)
    3. 返回类型不可作为重载的判定

范例



//父类
public Animal {
	//封装属性和方法,属性私有化,方法公有化
	private String name;
	private int age;

	public void introduce()
	{
		System.out.println("我是个动物!");	
	}
}

//子类1-继承
public Dog extends Animal {
	@override
	public void introduce()
	{
		System.out.println("我是一个小狗!");
	}
}

//子类2-继承
public Cat extends Animal {
	@override
	public void introduce()
	{
		System.out.println("我是一只小猫!");
	}
}

//测试类
public Test {

	public static void main(String[] args)
	{
	
		//以下的两个对象的创建和调用对象方法体现了多态的特性。父类引用指向子类
		Animal cat = new Cat();
		//输出的结果是:我是一只小猫
		cat.introduce();
	
		Animal dog = new Dog();
		//输出的结果是:我是一个小狗!
		dog.introduce();
	}
}

你可能感兴趣的:(java)