继承
1.继承就是代码的高效复用.
2.继承的好处: 代码的复用 易于升级和扩展 为多态做铺垫
3.继承的功能: 假如B继承了A
功能:拥有A的所有方法和属性,可以任意调用除私有外的方法,java里只可以单继承(一个类只能继承一个)
class A
{
publicvoid method1(){
System.out.println("hello A!");
}
publicstatic void main(String[] args)
{
Bb=new B();
b.method1();
}
运行结果: Hello B!
|
}
class B extends A
{
public void method1(){
System.out.println("hello B!");
}
}
4.继承类=子类=派生类
被继承类=父类=超类
5.使用this实现内部转发,子类继承父类则自动调用无参构造器。
6.super的使用
class 人
{ String name;
String sex;
int age;
public 人(String name,Stringsex,int age){
this.name=name;
this.sex=sex;
this.age=age;
}
publicstatic void main(String[] args)
{
人 r=new 人("李四","女",12);
System.out.println(r.name);
System.out.println(r.sex);
System.out.println(r.age);
男人 n=new 男人("小何",20,"学生");
System.out.println(n.name);
System.out.println(n.age);
在构造方法中第一条语句(必须在第一条)使用,以调用父类的构造器; 在构造方法或方法中调用父类属性及方法(父类的private属性和方法无法访问) 也就是说子类有构造方法,那么就要在方法体的第一句加上super() |
System.out.println(n.type);
女人 m=new 女人("小花",20);
System.out.println(m.name);
System.out.println(m.age);
m.化妆();.
}
}
class 男人 extends 人{
String type="";
public男人(Stringname,int age,String type){
super(name,"男",age);
this.type=type;
}
}
class 女人 extends 人{
public void 化妆(){
System.out.println("漂亮");}
public 女人(Stringname,int age){
super(name,"女",age);
}
}
7.方法的重写(继承环境):方法名和方法参数相同,表示重新在子类声明与父类方法一模一样的方法,但现实不一样。
当父类的方法过时了,不适用了,才需要重写父类。但不能删除父类中原本的方法。
8.调用方法或属性时,先考虑子类,后考虑父类,即子类有就先调用子类,子类没有再去从父类中找。
9.
程序员 |
李四 |
class A{
String type;
}
name |
type |
name |
type |
class B extends A{
String name;
B a1=new B();
对象
|
对象
|
对象
|
对象 |
a1.name=”李四”;
a1.type=”程序员”;
a1 a2 |
B a2=new B();
}
10.class A{
public A(int u){
System.out.println(“A”+u);
}
}
public class Bextends A{
public B(){
super(100000); //声明
}
public B(int i){
super(i);
System.out.println(i);
}
Public static void main(String[] s){
Bb=new B(5000);
}
11.class类(属性,方法,静态块,构造器)
objest对象所有类的祖先---所有类都继承object
12.StringtoString() 将对象形成字符串
13.Objectclong()
14.booleanequals(object) 比较
15.对象和对象之间比较是比较属性的值
多态
1. 子类可以转换成父类
B b=new B();
A a=new B();
2.面向父类编程思想—>先定规则,后坐实现
编程的两种写法 软写法:易于改代码,易于升级
硬写法