java三大特性短短六个字就概括了
1.继承(extends)
一个新类从已有的类那里获得其已有的属性和方法,这种现象叫类的继承。
(这个新类被称为子类,也叫派生类,已有的那个类叫做父类,也叫做基类。)
注意:私有属性和方法不能被继承。
B继承A类的所有属性和方法
class A{
public void f(){
System.out.println("AAAA\n");
}}class B extends A{
public void f(){
super.f();
System.out.println("BBBB\n");
}
}public class text{
{
public static void main(String[] args){
B bb=new B();
bb.f();
}
}}
java只支持单继承,不允许多重继承。
单继承就是一个类可以有一个父类
多继承就是一个类可以有多个父类
继承的好处:
一:代码得到了极大的重用
二:形成一种类的层次体系结构
三:为多态创造条件。
2.多态
简单来说就是同样一段代码做不同的事情
子类对象可以直接赋给父类引用,但是父类对象在任何情况下不可以直接赋给子类引用。
通过父类引用只能访问子类对象从父类继承过来的成员。
实例:
class A{
public void f(){
System.out.println("AAAA\n");
}}class B extends A{
public void f(){
System.out.println("BBBB\n");
}
}public class text{
{
public static void main(String[] args){
A aa=new A();
B bb=new B();
aa.f();//AAAA
bb.f();//BBBB
aa=bb;//子类对象可以直接赋给父类引用,但是父类对象在任何情况下不可以直接赋给子类引用。
aa.f();//BBBB
}
}}
假设父类A是动物,B是狗类,我们可以把B赋给A ,说其B类是动物类,而不能把A类说成狗类,动物类包含不止狗一种类,所以子类可以赋给父类引用,父类不可以赋给子类引用。aa=bb bb!=aa------这也可以说是“向上转型”。
我们定义一个B类继承A类。那么A类就是父类,B类就是子类。
实例化B类 :B bb=new B() 这个很简单!
但这样定义可能就难懂了
A aa=new B();
我定义了一个A类型的引用,指向一个B类型的对象,A是B 的父类,所有A类型引用是可以指向B类型对象的。
定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。
但是父类引用只能调用父类中存在的方法和属性,不能调用子类的扩展部分。
3.封装
什么是封装:封装,顾名思义,就是密封包装起来。
通常将成员变量声明为private
封装的好处:
主要体现在信息隐藏
① 类的成员变量可以成为只读或者只写的。
② 可以根据访问修饰符的提点在其它类中调用该类中的属性和行为
③用户不需要知道它如何存储数据,用户只需要调用。
想要封装性更好,我们需要set和get来操作
set 是对变量赋值
get是读取这个成员变量
public class Pepole {
private String name;
private String sex;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}