写在前面 ??你们好,我是小庄。很高兴能和你们一起学习Java。如果您对Java感兴趣的话可关注我的动态. ??写博文是一种习惯,在这过程中能够梳理和巩固知识。
一、继承
什么是继承? ????继承是 Java 面对对象编程技术的一块基石,是面对对象的三大特征之一,也是实现软件复用的重要手段,继承可以理解为一个对象从另一个对象获取属性的过程。
例:孩子继承了父亲的某些特征,但孩子又有自己的行为(性格)。
继承的特点 : ????1、子类拥有父类非 private 的属性、方法 ????2、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展 ????3、子类可以用自己的方式实现父类的方法 ????4、子类使用extends 关键字继承指定的父类
被继承 的类称为超类 或父类 通过继承创建 的类称为子类 或派生类
public class Animal{
private String name="我是父类的私有属性";
public int age;
public String say(){
System.out.println("我是父类的方法");
}
public void getAge(){
System.out.println(this.age);
}
}
创建一个新的class类继承Animal,子类继承父类
public class Cat extends Animal{
public static void main(String[] agrs){
Cat cat=new Cat();
cat.say();
cat.name="猫";
cat.age=2;
cat.getAge();
}
}
二、super的使用
super只能对非private的属性、方法、构造函数进行操作
1、super.函数名():子类重写父类的函数 2、super.属性名:子类重写父类的属性 3、super():在子类的构造方法中
public class A{
String s="我是A类";
public A(String s){
}
public void say(){
System.out.println("我是父类的函数");
}
}
public class B extends A{
String s="我是B类";
public B(String s){
super(s);
}
@Override
public void say() {
System.out.println(s);
System.out.println(super.s);
super.say();
}
}
三、重载与多态
重载的定义 : ????1、在同一个类中可以定义相同名字的方法名,参数个数不同 ????2、当参数个数相同时,参数类型必须不同 ????3、与参数名、返回值、修饰符无关
举例如下:
public class Test{
public void hello(){}
public void hello(String name){}
public void hello(int id){}
public void hello(String password){}
public static void hello(){}
public String hello(){return "";}
}
多态的定义 ????1、必须在继承的子类中 ????2、方法名必须是父类已有的方法名,返回类型一致 ????3、参数个数和参数类型和父类一致 多态的作用 ????1、子类重写父类的方法,父类的方法被覆盖掉 ????2、每一个子类可以共有一个父类的方法,却达到不同的行为
举例:
public class A{
private void hello(){
System.out.println("Hello,我是父类的方法");
}
}
public class B extends A{
public void hello(){
System.out.println("Hello,我是子类的方法");
}
public void hello(String name){
System.out.println("Hello,我是重载方法");
}
}
四、抽象类
什么是抽象类? 抽象类是抽象的,可扩展的。由abstract 修饰的类叫抽象类,抽象的类无法进行实例化(不能通过new产生对象) 抽象类的特点 ????1、使用关键字abstract 修饰的类 ????2、抽象类不能实例化,也就是不能创建这个类的对象 ????3、抽象类被继承后必须实现抽象方法,否则该类只能被定义成为抽象类。 ????4、抽象类可以有方法,但继承的子类必须实现所有的抽象方法
public abstract class Test{
public abstract void hello();
}
public class Dev extends Test{
public void hello(){}
}
public class Dev extends Test{}
public class Dev extends Test{
public abstract void hello();
}
上一篇: Java对象和类
下一篇: 正在更新中…
|