类
抽象类[虚类]
接口[纯虚类]
----------------------------------------
类的继承
为什么需要继承?
1.为了体现现实中类之间的关系
2.减少代码冗余
3.对父类实现修改和扩展
如何继承?
public class B extends A{}
继承到了什么?
1.继承到了可访问的属性和方法
2.子类可以定义自己特有的属性和方法【必须是子类类型的对象才能调用】
3.子类可以重写[覆盖]从父类继承来的属性和方法【根据对象new的是什么类型,就调用那个类中的方法】
类型的转换
自动转型
强制转型
public > protected > 默认 > private
方法的重写:在子类中修改从父类中继承来的方法
方法名,参数列表,返回值都必须一样
访问限定符不能缩小
方法的重载:在同一个类中,有多个同名不同参数列表的方法
重载和方法的访问限定符,返回值没有关系
多态:相同类型的对象,调用相同的方法,得到的结果可能不一样
静态多态:方法的重载导致的
动态多态: 方法的重写导致的
接口(可以实现多个接口)
public class A{}
构造方法
属性[成员变量]
类属性[static变量]
方法[成员函数],必须有方法体
抽象类
public abstract class A{}
可以定义成员属性和类属性
方法可以有方法体,也可以没有方法体[抽象方法]
有构造方法,也可以重载构造方法,但是不能调用创建对象
抽象类是给子类继承扩展的
抽象类使用extends来继承
接口
public interface A{}
接口中的属性必须是常量,不能是成员变量
接口中的方法必须是抽象方法
接口中的属性和方法的访问限定符必须是public,默认是public
接口没有构造方法
接口的作用就是给子类继承扩展的
接口使用implements来实现
PS:1.Java中的继承是单根继承,一个类有且只有一个父类
public class A{}
public class B extends A{}
2.接口可以继承多个接口
public interface C{}
public interface D{}
public interface E extends C,D{}
3.一个类可以实现多个接口
public class F implements C,D{}
4.一个类可以先继承一个类,在实现多个接口
public class G extends A implements C,D{}
抽象类[虚类]
接口[纯虚类]
----------------------------------------
类的继承
为什么需要继承?
1.为了体现现实中类之间的关系
2.减少代码冗余
3.对父类实现修改和扩展
如何继承?
public class B extends A{}
继承到了什么?
1.继承到了可访问的属性和方法
2.子类可以定义自己特有的属性和方法【必须是子类类型的对象才能调用】
3.子类可以重写[覆盖]从父类继承来的属性和方法【根据对象new的是什么类型,就调用那个类中的方法】
类型的转换
自动转型
强制转型
public > protected > 默认 > private
方法的重写:在子类中修改从父类中继承来的方法
方法名,参数列表,返回值都必须一样
访问限定符不能缩小
方法的重载:在同一个类中,有多个同名不同参数列表的方法
重载和方法的访问限定符,返回值没有关系
多态:相同类型的对象,调用相同的方法,得到的结果可能不一样
静态多态:方法的重载导致的
动态多态: 方法的重写导致的
面向对象的三大特征:继承 多态 封装
继承(只能够继承一个父类)
class A
{
public A(){}
}
class B extends A //继承
{
public B(){}
}
接口(可以实现多个接口)
public interface A{
public static final int num=100;//接口中属性是公共常量(public static final)(默认)
public abstract void fun();//接口中方法必须是抽象的,必须是public abstract(默认)
}
class B implements A{
public void fun() //必须实现接口方法
{
System.out,println("my interface");
}
}
抽象类(只能被继承,不能实例化)
public abstract class A{
public void fun()
{
}
public abstract void fun1();
}
类
public class A{}
构造方法
属性[成员变量]
类属性[static变量]
方法[成员函数],必须有方法体
抽象类
public abstract class A{}
可以定义成员属性和类属性
方法可以有方法体,也可以没有方法体[抽象方法]
有构造方法,也可以重载构造方法,但是不能调用创建对象
抽象类是给子类继承扩展的
抽象类使用extends来继承
接口
public interface A{}
接口中的属性必须是常量,不能是成员变量
接口中的方法必须是抽象方法
接口中的属性和方法的访问限定符必须是public,默认是public
接口没有构造方法
接口的作用就是给子类继承扩展的
接口使用implements来实现
PS:1.Java中的继承是单根继承,一个类有且只有一个父类
public class A{}
public class B extends A{}
2.接口可以继承多个接口
public interface C{}
public interface D{}
public interface E extends C,D{}
3.一个类可以实现多个接口
public class F implements C,D{}
4.一个类可以先继承一个类,在实现多个接口
public class G extends A implements C,D{}