-------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-------
面向对象
封装:其实就是包装的意思,封装就是把事物中的细节给隐藏了,需要对外提供一些可以访问这些隐藏细节的方式
封装的好处:1.封装隐藏了细节,可以提高程序的安全性
2.封装可以提高程序的维护性
3.提高程序的复用性
class Person {
// 使用private将对象进行私有化
private String name;
private int age;
// 将对外部提供方法需要使用public公共的
// 赋值方法使用setxxx
// 获取值方法使用getxxx
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
继承:
java中使用extends关键字来表示继承关系 样式:子类 extends 父类(注意final修饰的类不能被子类继承)
class person{
}
class student extends person{
}
类student继承与person,所以在上述代码块中,person类称为父类(基类),student类成为子类(导出类)
如果两个类存在继承关系,则子类会自动继承父类的方法和变量,在子类中可以调用父类的方法和变量。在java中,只允许单继承,也就是说 一个类最多只能显示地继承于一个父类。但是一个类却可以被多个类继承,也就是说一个类可以拥有多个子类。
对于子类可以继承父类的成员方法,如果在子类中出现同名成的函数,称为复写(重写),则子类的函数会覆盖父类的函数,如果子类需要访问父类同名函数是,使用super关键字(父类构造器)来进行应用。
多态
class Persion{
public String name="——————>父类";
public void base(){
System.out.println("父类的普通方法");
}
public void text(){
System.out.println("父类的被覆盖的方法");
}
}
class Student extends Persion{
public String name="——————>子类";
@Override
public void text() {
System.out.println("子类的覆盖父类的方法");
}
public void show(){
System.out.println("子类的普通方法");
}
}
public class Dometext {
public static void main(String[] args) {
//编译时类型和运行时类型完全一样,因此不不存在多态
Persion p=new Persion();
System.out.println(p.name);
p.base();
p.text();
Student stu=new Student();
System.out.println(stu.name);
//复写父类方法
stu.text();
stu.show();
//下面编译时类型和运行时类型不一样,多态发生
Persion persion=new Student();
System.out.println(persion.name);
persion.base();
persion.text();
}
}
定义父类类型的应用指向子类的对象即可以使用子类类部的方法,又可以抽取父类的共性。
多态的优点:提高了程序的扩展性。
多态的缺点:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中的方法,不可以访问子类中的方法