java基础类的回顾

时间:2021-05-01 15:45:18

java的三大特征:

1.封装:封装就是将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户是隐藏其实现细节的。

2.继承:继承就是把共性放到父类,特性放到子类里面。把所有子类的共性放到子类里面。子类特有的属性和方法由自己做实现。

3.多态:通俗的说就是父类的引用指向子类对象。对于我们要处理的类不明确时,多态是提供了很大的帮助的。

package com.yc.game;

public class Test {
public static void main(String[] args) {
//多态就是父类的引用指向子类对象
Animal animal=new Dog(4,"nihao");
Test test=new Test();
//当要得到的对象的信息不确定时 我们就可以用父类的引用来指代子类
//这里的animal就是dog类
test.getInfo(animal);
//这里就是猫类
animal=new Cat(8,"wohenhao");
test.getInfo(animal);
}
public void getInfo(Animal animal){
System.out.println(animal.getAge()+"==="+animal.getName());
}
}
//父类
class Animal{
int age;
public Animal(){}
public Animal(int age,String name){
this.age=age;
this.name=name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
String name;
}
//子类狗
class Dog extends Animal{

public Dog(int age, String name) {
this.age=age;
this.name=name;
}

}
//子类猫
class Cat extends Animal{
public Cat(int age, String name) {
this.age=age;
this.name=name;
}
}
今天又看了一下抽象类:

java中抽象类用abstract来修饰的,方法也是。如果一个类继承抽象类就要实现父类所有抽象方法。

package com.yc.game;

public class AbstractParent {

}

abstract class Parent{
//抽象方法是不能被实现的
abstract public void getInfo();
abstract public void getName();
//抽象类同样可以包括非抽象方法
public void show(){
System.out.println("努力学习");
}
}
class Child extends Parent{

@Override
public void getInfo() {
// TODO Auto-generated method stub

}

@Override
public void getName() {
// TODO Auto-generated method stub

}

}
接口是比抽象类更抽象的类,接口很好解决了java单继承的缺陷。接口里面没有具体的实现方法。只是为了定义一个统一的标准,实现接口的类要实现接口的所有方法。

package com.yc.game;

public class TestInterface {

}
//定义接口
interface Animal{
public void getName();
public void getAge();
}
//实现接口的类要实现接口的所有方法
class Dog implements Animal{

@Override
public void getName() {
// TODO Auto-generated method stub

}

@Override
public void getAge() {
// TODO Auto-generated method stub

}

}
最后总结一下今天看的final修饰符,总结几句:


1.用final修饰的类不可以被继承


2.用final修饰的属性不可以被修改,并且要在定义时赋予值。


3.用final修饰的方法,不能被子类方法覆盖。